Spellcheck the codebase

Change-Id: If581dcdf063c3b45237a424f0dade7a033151893
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/83267
Commit-Queue: Adam Langley <agl@google.com>
Auto-Submit: David Benjamin <davidben@google.com>
Reviewed-by: Adam Langley <agl@google.com>
This commit is contained in:
David Benjamin
2025-10-25 12:29:49 -04:00
committed by Boringssl LUCI CQ
parent b929002166
commit 945f4a5d8f
133 changed files with 260 additions and 260 deletions
+1 -1
View File
@@ -284,7 +284,7 @@ pointer. The caller must own the object before the function call and, after
transfer, no longer owns it. As a corollary, the caller may no longer reference
the object without a separate guarantee on the lifetime. The function may even
release the object before returning. Callers that wish to independently retain a
transfered object must therefore take a reference or make a copy before
transferred object must therefore take a reference or make a copy before
transferring. Callers should also take note of whether the function is
documented to transfer pointers unconditionally or only on success. Unlike C++
and Rust, functions in BoringSSL typically only transfer on success.
+1 -1
View File
@@ -382,7 +382,7 @@ if(FIPS_DELOCATE OR NOT OPENSSL_NO_ASM)
if(NOT WIN32)
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack")
endif()
# Clang's integerated assembler does not support debug symbols.
# Clang's integrated assembler does not support debug symbols.
if(NOT CMAKE_ASM_COMPILER_ID MATCHES "Clang")
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,-g")
endif()
+1 -1
View File
@@ -108,7 +108,7 @@ module system.
If you are using multiple versions in a single binary, in different shared
objects, ensure you build BoringSSL with `-fvisibility=hidden` and do not
export any of BoringSSL's symbols. This will prevent any collisions with other
verisons that may be included in other shared objects. Note that this requires
versions that may be included in other shared objects. Note that this requires
that all callers of BoringSSL APIs live in the same shared object as BoringSSL.
If you require that BoringSSL APIs be used across shared object boundaries,
+1 -1
View File
@@ -283,7 +283,7 @@ parameter.
## Significant API additions
In some places, BoringSSL has added significant APIs. Use of these APIs goes beyound “porting” and means giving up on OpenSSL compatibility.
In some places, BoringSSL has added significant APIs. Use of these APIs goes beyond “porting” and means giving up on OpenSSL compatibility.
One example of this has already been mentioned: the [CBS and CBB](https://commondatastorage.googleapis.com/chromium-boringssl-docs/bytestring.h.html) functions should be used whenever parsing or serialising data.
+1 -1
View File
@@ -97,7 +97,7 @@ ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *in,
goto done;
}
// Grow the string to accomodate the two-digit century.
// Grow the string to accommodate the two-digit century.
if (!ASN1_STRING_set(ret, nullptr, in->length + 2)) {
goto err;
}
+2 -2
View File
@@ -1318,7 +1318,7 @@ TEST(ASN1Test, StringPrintEx) {
std::string(1, '\0') + "\n\x80\xff,+\"\\<>;"},
// Flags control different escapes. Note that any escape flag will cause
// blackslashes to be escaped.
// backslashes to be escaped.
{V_ASN1_T61STRING,
{0, '\n', 0x80, 0xff, ',', '+', '"', '\\', '<', '>', ';'},
0,
@@ -2554,7 +2554,7 @@ TEST(ASN1Test, StringEncoding) {
}
}
// Exhaustively test POSIX time conversions for every day across the millenium.
// Exhaustively test POSIX time conversions for every day across the millennium.
TEST(ASN1Test, POSIXTime) {
const int kDaysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
+2 -2
View File
@@ -87,7 +87,7 @@ int asn1_item_ex_i2d_opt(ASN1_VALUE **pval, unsigned char **out,
// Historically, |aclass| was repurposed to pass additional flags into the
// encoding process.
assert((aclass & ASN1_TFLG_TAG_CLASS) == aclass);
// If not overridding the tag, |aclass| is ignored and should be zero.
// If not overriding the tag, |aclass| is ignored and should be zero.
assert(tag != -1 || aclass == 0);
// All fields are pointers, except for boolean |ASN1_ITYPE_PRIMITIVE|s.
@@ -238,7 +238,7 @@ static int asn1_template_ex_i2d(ASN1_VALUE **pval, unsigned char **out,
// Historically, |iclass| was repurposed to pass additional flags into the
// encoding process.
assert((iclass & ASN1_TFLG_TAG_CLASS) == iclass);
// If not overridding the tag, |iclass| is ignored and should be zero.
// If not overriding the tag, |iclass| is ignored and should be zero.
assert(tag != -1 || iclass == 0);
// Work out tag and class to use: tagging may come either from the
+2 -2
View File
@@ -92,7 +92,7 @@ void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it) {
}
asn1_enc_free(pval, it);
// If we free up as normal we will invalidate any ANY DEFINED BY
// field and we wont be able to determine the type of the field it
// field and we won't be able to determine the type of the field it
// defines. So free up in reverse order.
for (int i = it->tcount - 1; i >= 0; i--) {
const ASN1_TEMPLATE *seqtt = asn1_do_adb(pval, &it->templates[i], 0);
@@ -128,7 +128,7 @@ void ASN1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt) {
void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it) {
// Historically, |it->funcs| for primitive types contained an
// |ASN1_PRIMITIVE_FUNCS| table of calbacks.
// |ASN1_PRIMITIVE_FUNCS| table of callbacks.
assert(it->funcs == nullptr);
int utype = it->itype == ASN1_ITYPE_MSTRING ? -1 : it->utype;
+2 -2
View File
@@ -214,7 +214,7 @@ static int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it) {
}
// Historically, |it->funcs| for primitive types contained an
// |ASN1_PRIMITIVE_FUNCS| table of calbacks.
// |ASN1_PRIMITIVE_FUNCS| table of callbacks.
assert(it->funcs == nullptr);
int utype;
@@ -261,7 +261,7 @@ static int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it) {
static void asn1_primitive_clear(ASN1_VALUE **pval, const ASN1_ITEM *it) {
int utype;
// Historically, |it->funcs| for primitive types contained an
// |ASN1_PRIMITIVE_FUNCS| table of calbacks.
// |ASN1_PRIMITIVE_FUNCS| table of callbacks.
assert(it == nullptr || it->funcs == nullptr);
if (!it || (it->itype == ASN1_ITYPE_MSTRING)) {
utype = -1;
+1 -1
View File
@@ -50,7 +50,7 @@ BIO *BIO_new_mem_buf(const void *buf, ossl_ssize_t len) {
// |num| is used to store the value that this BIO will return when it runs
// out of data. If it's negative then the retry flags will also be set. Since
// this is static data, retrying wont help
// this is static data, retrying won't help
ret->num = 0;
return ret;
+1 -1
View File
@@ -307,7 +307,7 @@ aesgcmsiv_htable_polyval:
.Lhtable_polyval_no_prefix:
# At this point we know the number of blocks is a multiple of 8. However,
# the reduction in the main loop includes a multiplication by x^(-128). In
# order to counter this, the existing tag needs to be multipled by x^128.
# order to counter this, the existing tag needs to be multiplied by x^128.
# In practice, this just means that it is loaded into $Xhi, not $T.
vpxor $T, $T, $T
vmovdqa ($Tp), $Xhi
+1 -1
View File
@@ -869,7 +869,7 @@ $code.=<<___;
subs $adl, $adl, #1
b.gt .Lseal_hash_extra_load
// Hash in the final padded extra_in blcok
// Hash in the final padded extra_in block
___
&poly_add_vec($T0);
&poly_mul();
+1 -1
View File
@@ -109,7 +109,7 @@ TEST(CompilerTest, IntegerRepresentation) {
// Require that |int| be exactly 32 bits. OpenSSL historically mixed up
// |unsigned| and |uint32_t|, so we require it be at least 32 bits. Requiring
// at most 32-bits is a bit more subtle. C promotes arithemetic operands to
// at most 32-bits is a bit more subtle. C promotes arithmetic operands to
// |int| when they fit. But this means, if |int| is 2N bits wide, multiplying
// two maximum-sized |uintN_t|s is undefined by integer overflow!
//
+1 -1
View File
@@ -50,7 +50,7 @@ static int STRING_PIECE_equals(const STRING_PIECE *a, const char *b) {
return a->len == b_len && OPENSSL_memcmp(a->data, b, b_len) == 0;
}
// STRING_PIECE_split finds the first occurence of |sep| in |in| and, if found,
// STRING_PIECE_split finds the first occurrence of |sep| in |in| and, if found,
// sets |*out_left| and |*out_right| to |in| split before and after it. It
// returns one if |sep| was found and zero otherwise.
static int STRING_PIECE_split(STRING_PIECE *out_left, STRING_PIECE *out_right,
+1 -1
View File
@@ -559,7 +559,7 @@ DSA_SIG *DSA_do_sign(const uint8_t *digest, size_t digest_len, const DSA *dsa) {
// retry is negligible, let alone 32. Unfortunately, DSA was mis-specified,
// so invalid parameters are reachable from most callers handling untrusted
// private keys. (The |dsa_check_key| call above is not sufficient. Checking
// whether arbitrary paremeters form a valid DSA group is expensive.)
// whether arbitrary parameters form a valid DSA group is expensive.)
static const int kMaxIterations = 32;
int iters = 0;
redo:
+1 -1
View File
@@ -33,7 +33,7 @@
// becomes a performance bottleneck, some possible optimizations by
// specializing it to the curve:
//
// - Rather than using a generic |felem_exp|, specialize the exponentation to
// - Rather than using a generic |felem_exp|, specialize the exponentiation to
// c2 with a faster addition chain.
//
// - |felem_mul| and |felem_sqr| are indirect calls to generic Montgomery
+1 -1
View File
@@ -283,7 +283,7 @@ struct MLDSAImplementation {
// whether a private key is valid. We only implement the "seed"
// representation. Give this case a different error for easier diagnostics.
//
// The "expandedKey" representation was a last-minute accomodation for
// The "expandedKey" representation was a last-minute accommodation for
// legacy hardware, which should be updated to use seeds. Supporting it
// complicates the notion of a private key with both seedful and seedless
// variants.
+2 -2
View File
@@ -27,8 +27,8 @@
struct crypto_ex_data_func_st {
long argl; // Arbitary long
void *argp; // Arbitary void pointer
long argl; // Arbitrary long
void *argp; // Arbitrary void pointer
CRYPTO_EX_free *free_func;
// next points to the next |CRYPTO_EX_DATA_FUNCS| or NULL if this is the last
// one. It may only be read if synchronized with a read from |num_funcs|.
+2 -2
View File
@@ -187,8 +187,8 @@ static_assert(AES_NOHW_WORD_SIZE == sizeof(aes_word_t),
//
// Observe that the distances between corresponding bits in bitsliced and
// compact bit orders match. If we line up corresponding words of each block,
// the bitsliced and compact representations may be converted by tranposing bits
// in corresponding logical bytes. Continuing the 64-bit example:
// the bitsliced and compact representations may be converted by transposing
// bits in corresponding logical bytes. Continuing the 64-bit example:
//
// block_a[0] = a0 a1 a2 a3 | a8 a9 a10 a11 | a16 a17 a18 a19 ...
// block_b[0] = b0 b1 b2 b3 | b8 b9 b10 b11 | b16 b17 b18 b19 ...
+4 -4
View File
@@ -64,7 +64,7 @@
# nothing one can do and the result appears optimal. CCM result is
# identical to CBC, because CBC-MAC is essentially CBC encrypt without
# saving output. CCM CTR "stays invisible," because it's neatly
# interleaved wih CBC-MAC. This provides ~30% improvement over
# interleaved with CBC-MAC. This provides ~30% improvement over
# "straightforward" CCM implementation with CTR and CBC-MAC performed
# disjointly. Parallelizable modes practically achieve the theoretical
# limit.
@@ -2262,7 +2262,7 @@ $code.=<<___;
movdqu `16*0`($inp),$inout0 # load input
movdqa $rndkey0,$twmask
movdqu `16*1`($inp),$inout1
pxor @tweak[0],$inout0 # intput^=tweak^round[0]
pxor @tweak[0],$inout0 # input^=tweak^round[0]
movdqu `16*2`($inp),$inout2
pxor @tweak[1],$inout1
aesdec $rndkey1,$inout0
@@ -3778,7 +3778,7 @@ ctr_xts_se_handler:
mov 56($disp),%r11 # disp->HandlerData
mov 0(%r11),%r10d # HandlerData[0]
lea (%rsi,%r10),%r10 # prologue lable
lea (%rsi,%r10),%r10 # prologue label
cmp %r10,%rbx # context->Rip<prologue label
jb .Lcommon_seh_tail
@@ -3825,7 +3825,7 @@ ocb_se_handler:
mov 56($disp),%r11 # disp->HandlerData
mov 0(%r11),%r10d # HandlerData[0]
lea (%rsi,%r10),%r10 # prologue lable
lea (%rsi,%r10),%r10 # prologue label
cmp %r10,%rbx # context->Rip<prologue label
jb .Lcommon_seh_tail
+1 -1
View File
@@ -53,7 +53,7 @@
# 113355
#
# Next we account for GCM's confusing bit order. The "first" bit is the least
# significant coefficient, but GCM treats the most sigificant bit within a byte
# significant coefficient, but GCM treats the most significant bit within a byte
# as first. Bytes are little-endian, and bits are big-endian. We reverse the
# bytes in XMM registers for a consistent bit and byte ordering, but this means
# the least significant bit is the most significant coefficient and vice versa.
@@ -53,7 +53,7 @@
# 113355
#
# Next we account for GCM's confusing bit order. The "first" bit is the least
# significant coefficient, but GCM treats the most sigificant bit within a byte
# significant coefficient, but GCM treats the most significant bit within a byte
# as first. Bytes are little-endian, and bits are big-endian. We reverse the
# bytes in XMM registers for a consistent bit and byte ordering, but this means
# the least significant bit is the most significant coefficient and vice versa.
+1 -1
View File
@@ -73,7 +73,7 @@ void CRYPTO_ctr128_encrypt_ctr32(const uint8_t *in, uint8_t *out, size_t len,
(*func)(in, out, blocks, key, ivec);
// (*func) does not update ivec, caller does:
CRYPTO_store_u32_be(ivec + 12, ctr32);
// ... overflow was detected, propogate carry.
// ... overflow was detected, propagate carry.
if (ctr32 == 0) {
ctr96_inc(ivec);
}
+4 -4
View File
@@ -504,7 +504,7 @@ __bn_sqr8x_mont:
adc $acc5,$acc5,$t1
adds $acc5,$acc5,$t2
sub $t0,$ap_end,$num // rewinded ap
sub $t0,$ap_end,$num // rewound ap
adc $acc6,xzr,xzr // t[14]
add $acc6,$acc6,$t3
@@ -854,7 +854,7 @@ $code.=<<___;
// to be zero at this point
ldp $a0,$a1,[$tp,#8*0]
sub $cnt,$np_end,$np // done yet?
sub $t2,$np_end,$num // rewinded np
sub $t2,$np_end,$num // rewound np
ldp $a2,$a3,[$tp,#8*2]
ldp $a4,$a5,[$tp,#8*4]
ldp $a6,$a7,[$tp,#8*6]
@@ -1212,7 +1212,7 @@ __bn_mul4x_mont:
//adc $carry,$carry,xzr
cbnz $cnt,.Loop_mul4x_1st_tail
sub $t1,$ap_end,$num // rewinded $ap
sub $t1,$ap_end,$num // rewound $ap
cbz $t0,.Lmul4x_proceed
ldp $a0,$a1,[$ap,#8*0]
@@ -1354,7 +1354,7 @@ __bn_mul4x_mont:
//adc $carry,$carry,xzr
cbnz $cnt,.Loop_mul4x_tail
sub $t1,$np,$num // rewinded np?
sub $t1,$np,$num // rewound np?
adc $carry,$carry,xzr
cbz $t0,.Loop_mul4x_break
+4 -4
View File
@@ -46,17 +46,17 @@ sub mul_add_c
&mul("edx");
&add($c0,"eax");
&mov("eax",&DWP(($na)*4,$a,"",0)) if $pos == 0; # laod next a
&mov("eax",&DWP(($na)*4,$a,"",0)) if $pos == 0; # load next a
&mov("eax",&wparam(0)) if $pos > 0; # load r[]
###
&adc($c1,"edx");
&mov("edx",&DWP(($nb)*4,$b,"",0)) if $pos == 0; # laod next b
&mov("edx",&DWP(($nb)*4,$b,"",0)) if $pos == 1; # laod next b
&mov("edx",&DWP(($nb)*4,$b,"",0)) if $pos == 0; # load next b
&mov("edx",&DWP(($nb)*4,$b,"",0)) if $pos == 1; # load next b
###
&adc($c2,0);
# is pos > 1, it means it is the last loop
&mov(&DWP($i*4,"eax","",0),$c0) if $pos > 0; # save r[];
&mov("eax",&DWP(($na)*4,$a,"",0)) if $pos == 1; # laod next a
&mov("eax",&DWP(($na)*4,$a,"",0)) if $pos == 1; # load next a
}
sub sqr_add_c
+1 -1
View File
@@ -187,7 +187,7 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
ctx->buf_len = 0;
ctx->final_used = 0;
// Clear the poisoned flag to permit re-use of a CTX that previously had a
// Clear the poisoned flag to permit reuse of a CTX that previously had a
// failed operation.
ctx->poisoned = 0;
return 1;
+1 -1
View File
@@ -25,7 +25,7 @@ extern "C" {
// env_md_st is typoed ("evp" -> "env"), but the typo comes from OpenSSL and
// some consumers forward-declare these structures so we're leaving it alone.
struct env_md_st {
// type contains a NID identifing the digest function. (For example,
// type contains a NID identifying the digest function. (For example,
// NID_md5.)
int type;
+1 -1
View File
@@ -959,7 +959,7 @@ ecp_nistz256_ord_mul_mont_adx:
################################# reduction
mulx 8*0+128(%r14), $t0, $t1
adcx $t0, $acc3 # guranteed to be zero
adcx $t0, $acc3 # guaranteed to be zero
adox $t1, $acc4
mulx 8*1+128(%r14), $t0, $t1
@@ -190,7 +190,7 @@ ___
# What matters here is the order of instructions relative to certain other
# instructions, i.e.
# - lsr and lsl must precede orr of the corresponding registers.
# - lsl must preced the lsr of the same register afterwards.
# - lsl must precede the lsr of the same register afterwards.
# The chosen order of the instructions overall is to try and maximize
# the pipeline usage.
sub SHIFT256 {
+2 -2
View File
@@ -485,7 +485,7 @@ struct ec_method_st {
//
// TODO(davidben): This constrains |EC_FELEM|'s internal representation, adds
// many indirect calls in the middle of the generic code, and a bunch of
// conversions. If p224-64.c were easily convertable to Montgomery form, we
// conversions. If p224-64.c were easily convertible to Montgomery form, we
// could say |EC_FELEM| is always in Montgomery form. If we routed the rest of
// simple.c to |EC_METHOD|, we could give |EC_POINT| an |EC_METHOD|-specific
// representation and say |EC_FELEM| is purely a |EC_GFp_mont_method| type.
@@ -578,7 +578,7 @@ struct ec_group_st {
// has_order is one if |generator| and |order| have been initialized.
int has_order;
// field_greater_than_order is one if |field| is greate than |order| and zero
// field_greater_than_order is one if |field| is greater than |order| and zero
// otherwise.
int field_greater_than_order;
@@ -2435,7 +2435,7 @@ S = 01e1099fb389db498ab4cf23b4f06a74b9326878ae3c76ea13832e50702b30fe8303093a59cc
# The following tests are intended to stress the final comparison in ECDSA.
# ECDSA verification computes some curve point (x, y), picking the fully-reduced
# representive of x mod p, and checking that x mod n is r. (n is the order of
# representative of x mod p, and checking that x mod n is r. (n is the order of
# the group and p defines the underlying prime field.)
#
# This makes the computation sensitive to values near n and p, and which of n or
+1 -1
View File
@@ -1191,7 +1191,7 @@ void scalar_uniform(scalar *out, const uint8_t derived_seed[kSigmaBytes + 2]) {
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)
// Individual bytes of the SHAKE-256 stream are (indistinguishable from)
// independent of each other and the original seed, so leaking information
// about the rejected bytes does not reveal the input or output.
uint32_t v;
+1 -1
View File
@@ -301,7 +301,7 @@ void scalar_sub(scalar *lhs, const scalar *rhs) {
// 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
// only allows us to multiply two reduced numbers together, so we need some
// intermediate reduction steps, even if an uint64_t could hold 3 multiplied
// numbers.
void scalar_mult(scalar *out, const scalar *lhs, const scalar *rhs) {
+1 -1
View File
@@ -691,7 +691,7 @@ static int mod_montgomery(BIGNUM *r, const BIGNUM *I, const BIGNUM *p,
// I * R mod p here and save a reduction per prime. But this would require
// changing the RSAZ code and may not be worth it. Note that the RSAZ code
// uses a different radix, so it uses R' = 2^1044. There we'd actually want
// R^2 * R', and would futher benefit from a precomputed R'^2. It currently
// R^2 * R', and would further benefit from a precomputed R'^2. It currently
// converts |mont_p->RR| to R'^2.
return 1;
}
@@ -27,7 +27,7 @@
// |FIPS_service_indicator_before_call| is intended to be called immediately
// before an approved service, while |FIPS_service_indicator_after_call| should
// be called immediately after. If the values returned from these two functions
// are not equal, this means that the service called inbetween is deemed to be
// are not equal, this means that the service called in between is deemed to be
// approved. If the values are still the same, this means the counter has not
// been incremented, and the service called is not approved for FIPS.
//
+1 -1
View File
@@ -184,7 +184,7 @@ bcm_infallible BCM_fips_186_2_prf(uint8_t *out, size_t out_len,
#endif
/* Originally X was an array. As it's automatic it's natural
* to expect RISC compiler to accomodate at least part of it in
* to expect RISC compiler to accommodate at least part of it in
* the register bank, isn't it? Unfortunately not all compilers
* "find" this expectation reasonable:-( On order to make such
* compilers generate better code I replace X[] with a bunch of
+1 -1
View File
@@ -1637,7 +1637,7 @@ static int poly_unmarshal(struct poly *out, const uint8_t in[POLY_BYTES]) {
return 0;
}
// Set the final coefficient as specifed in [HRSSNIST] 1.9.2 step 6.
// Set the final coefficient as specified in [HRSSNIST] 1.9.2 step 6.
uint32_t sum = 0;
for (size_t i = 0; i < N - 1; i++) {
sum += out->v[i];
+1 -1
View File
@@ -244,7 +244,7 @@ static void scalar_sub(scalar *lhs, const scalar *rhs) {
// 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
// only allows us to multiply 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) {
File diff suppressed because one or more lines are too long
+10 -10
View File
@@ -1769,70 +1769,70 @@ result: pass
ciphertext: 6e78c7085b62594c22b881c61e63674892e8b15be6b3137030cf91834ac0126295c6893f0c386b7670821cbbcafac5d4211cfad5c1f75deb8e7df047b950fa504c189fcef6806e16c7a447187a7877ff91d5aa1f89d9f4c2f8c726dd7cbc688e247c929117e01c8cf93e62440ac3f9affd27ecfd76d525dde13ec8b3a6686e25cea8e46fdb3a264b4e1692bcb1cbfbf6e750a1faf99d8864c1a9beabe0d436b7ec5566c92be999b165ff4f30d6ba43347c326edf4a41ecf2d35cb825bafe62184cfc28b30419f509b631f9affdca2b3b78771fdfb006f5b6cca6d0f5522308543b4a1fc65463d8b0ef14fb3fdc160178692d598e59d71110447fec3d02a58556bd1d17d212bd09d4dcda359fc4ee60dd2f0c73db72ee684a28b550f6b17e7dc8e2bd1867076222033023851676c0a55956e14f2c67874217e5349918243011ace52437a127c1a743a52c7c6fd8a0a007d5d020ec1bfb9f98b0ae36561eadbb5e23b7202d909c7d5fad270542c2e57dd0a54fe7179050b7ca81d72fc8c4f07f45fb2ac905e209a3ced970bcf5334daf441a0ea8f250d41be94cc33d96a42a067654f43047cc500214d0a54920f61728b6e95a014926f03faa1b27f6f5cb4397347dd0744c09ad92608ed7cbc0bae29092d6846fbe0fa14a38529e00c165a7ba098c16e532d43a8e4bff1490c45e0a33bc02738b4a1958cebeb39fd30ed7026b3a015863c2e4a2ca00635475678132e7fc114fc8e891711241942b787384ee22352b2811cfe1a22fb7e8f2e173df93e59cfc98a677a136ec29bbd47bc66070a7a8fa3a709aed2123ce55bf27ff2d23eb87b9762659d16ced5e24b7e825e0b4c2e8a6b6cd1596e4fafc06c9e90a8f0137ad182662f54288da8b590d42c6fbf9bb14cc8f23fff1abcc5885ecccb580d93846b2ebec01bd528547765fa2c231dc1b5ec3b3263617d136a102f6e02458444b158162b80e9acd39ce90db232582ecfd679029c6ed4d5a17f28b4ef2a120455b5933b51d3751728ad07e9d1ae3dc52d690d5838cbfc8c8d5bd7284dca1b753be3cc485aff60a120eff28891e902af0ec3358785a0ac87f99f18f268d73c05ba725de2cbc82d2918f1694c3f6c813d02f341c9f40a7c75bcc5984d5ecc1cc308eb16a9c1971d4f8e6a8d5ba59e855656543c0c7e5b7e49a360bc31c9411da0642bb815703bb64fb550f19fbb0bb993453ab8f15ca9ebddae7ef5acf2910f130f95fe1e4ca602f7e09d605a4dddacdd3cf5c2830a7bd1fafa1d63f7cf4ad511303ce42fb6348397df469a813c822527b933747f8f419177caad0787b63570cdb807a35a190a46f2150fd19c18db91c9435908d79449b23430c1d26a7354b6b9d1d21f31d160e767681580c770bb264dcc24567e88a8bc6512831fba35cf6aa4fcac1040b200df1c60b88a3d7e1550f0a27e8232dd88a9c751624198f811ddbf1c2a833c58b91bab501e7cfccb5374c21482808be44877ed51389234f3bda65c44ab5781da9ee3269a0cd4a3f13f50ec1445c859fc164774cac725a3b561bd63a97170823fdc07bd6ecb46bcfcd76384e7baa0ec3c1f4c89215e26b580962502a4c06aa26068c041ff1354ee9ec07da71b163901784ef525c65bd00c403a9445ade4b0bddfc30e04d278b4873dbd1f18f4587cedf870d958b16be02ecdf3a5cc435b49e0e56775521579530013aea6a081aed4a5774bf72918526eb290a5bc1ef3f0ed9440863c1133a70b1481d46b6f0adb352b3cd4e50bba138570b8e5617e3a10b6382970ace312b95d87f5e8a6baea10d2ea19546acb5fcbac0d20e964b7c0bd0d1825d3955971bd657c316710066d81ccc421c786f7d21df4e748b47111732f1851dc992322d5b50cfcb66321b46588b39184c503666435d620eb03a3535b9611e7aac801e9cf90ecf7671f70eeec6103d6e00a2ca5a6a8424e645d4fa89b058b5f77441437e40bba596d705ba522fae5fb1240d9f9e25c9bcae741b514b9ff33d0132db5f06a73964f05dce8b41a568413bd7f4fc78a4c7dbd2f5815f3dff8f25b2e82a508f5f2fb02087bd23927707bc729574777e01ed0c93557867956d8493c1cd9dc86ef3c1e48986be905101578c8e7a11ea96709929e5dbb1560bd4d9f9acb7957355e09fad7c97712e890234b335fd950e25cf59a4ccc6cd461e6ffbbc43026faa7dcc6df33a8bc5f1dae7e5
shared_secret: 8918cd0c3eabdb8267e24b79272ab6b67c9ea6418cab15e2e3070f6c747b4dc4
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6
public_key = 9d76798256925e67ccd5ccac6d69a85343825b6a20793095e1a29d1b526e183611bad90cf6440bd3e79f847c6b912aa1919a9e7d9357b414cfccb206180067469b294b2c4233960a40e17800ab0ce483c40b653392488df837689fd72da0daae74575da747527b2a116984b2adccba04000ab72402f09c749341be42c79a5c8198488124fe750f66b82cf272826747c68a946d2629a48ce0a777b4a9673ba9c3a2a402305506f4b65b65b327e62de16c696bca3d0b8ca44013cc88d9444a83549af17a3f8270565359b168ca721027479a6e60a28f11b33d88da4faa084b576ba5bea09c2fa8a68c0aa8a309c96119aa52443bae570abbd942d193cc8ccab6e5643d0e362049f1ad00f98d173849afb1248ee2a67873950ec849e9b7042b94222b60bd50720b94d7317053cc86758cfc0bae9c9856c0c4411e74730fb65d8b7b838426123bf68b9804473469c6d8717dff450fcfa208b8f53e2cd8987919a5defbcda5a422ed82b495c67b46264106a613ec138097f05a2f2c5efc2076b9e2475ee162a5e7242cea1598088f8146bc8ea65909723fb7a60b1db157a4f43158457d2d157a1f980925a396401450b670728b2c7ca3aba3e7d4b4fd34b24caa87d45846bc2104e95a1d9a5676b734736fb00f7b3241160c2299b50e5517bd4faa859b79c8590c4322115a7c724f0767c056620bd006c01b5b87d80091bc483e5d341d14149095045d0648acabb46053e78c84045a9606bf82f6124fa9a8a9104ebaa734e3720eb6921553e353e66152f2e96adf34534a06aeeb677fc4f901bea148d28411f1f856b4d2cd261526e3a8139788796690413a50251dc1763703a42ee708f932cdeb9b7ecfb2c7d99002bb93cc248a133b9a4c8e910a045669ef5bc75113ce12f7963d665d6662246d383767f74317dbaaa3d0b855bb0274815442f0b66821cda6aab15672192d20c6aa8537432699ca8a22392a855323ad70f75979b56b392c29caf9c072885710c33967120aeef0bcfca1293df8181ce50dae21577701b1fa216dadf19fee4c35e0d435ffc83de3f92c2b276461b66398c75c98d92628b32a2ac3b571853c4a142bd5e81a8770c9d9359c91ac41aa2b4b063a9bcaf4592cb6626c213bc89c6eee3b75c59a21d6d748825b336f4052c6bb79f4ea13f51b672d1abb32887f1977505a75c13f0b66db14b56956050550ab0d85a814640dd3a36a825682c9cc6d6f13cf132780f5fcce87355007f9021ab5a5a3a69369c7876a5158654bc9f9400a1de60e71e34a370372f24cbc84166ee68b6433b6911a76bd78fa249e850bab6aa96ad820e0dcb438fbcfd9ea81f5f3c0d5d53653ba288815029202807aebb27402660e4b3cdb609bb7145dbc055fa146466b121e673359a8465073d99b63e799cafca95733938dfc2ad7d6007a36a8da027ad396618f1647b1287094737fe518b779f238b1ec0c9351b3c408b8f66b27f5262693826b24842a9153a9d205a7593665fc172c7c835354daaf90574686a8ca7fe5824ab94f29d6a5ac87cc40b999e5e7ade2744e1fe7048e38c804472579d93309986c28962b06e80d0952ab10d1cf1d945b99432ef5074dea9c6f4ed97959fc904e23a3834cc30de35f5350656d027a1e6620925a6840a337d14a82dd524c2077302fd6b72e97a959001d3d81768ccb7937f4aa07f00eef0aaeca877999e5598d30a81e920e2e8489970a31fdeb7d921474500835a01530e0177a44852cba38c3b0c297a0c5bc73db986d24cb0b323402d5355b543468f948976284dbcaa1c87c8b27cc62ce2b8306da3a5e08b0991403e7b0381adb0c897c7a994997a69ac1f5092f8edc480e77a82ae9bdedc724883b5eb3da56648979fd2337fb42aed861859aa6165a800d4c9b964e70195927359378073a84b80219613873a164324a04144c4a5b551937c23ac75e3a664a773966b512a01f3a7a60ec1ee06a068933a8ab0844511488f058b2c5bbc1c8dc07e32b267aeac8285543300bc66f8514ed6aac59cbb9be835b3ec68987a5cff5791643c60841da8c172c1ffc07110c77a43ab34621c474a60a385d153d79831922638740657030481146ca6843f6043cec1de4b0b307c52b288b98905b918bf3af0e698b4ea261db5895f7d02ea0fc59156090609764d09b4a7ed5000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 02c49972f757b82c1f5e7ff048b375cf05adac485075ca5a1eeadb615de1306d6712f0cfc452db395c57039fec57708d0a35b7bb238d1e4fd58301473cc4737d72ceab2b097d513ccd17a7f54d1fd145bc28aeaefd2157f2a8dbea391cffecfc2e1fb86c909b45e97a39b30ff59f176b2359a92cab56cf8d04ca42a08c70051c8d9405fa9aa2aaf5724d8b2a00528b7818671af4129c527bffa74702f02172bf51cb8e5b7c07438c785329807bd022fcb5aad5286642b1fbaf976af9816d3f0a3fdb79c2787f6abc1dd20fbb2995bc2a4b2408f5900c68a60f38f78037c3ddee01a3861433a7d9eeb5e7a41a56d2b2a11615d8ef8751d19cf7bc5e5e46b0944dfa61cee6dc16c490f5c7b62ebb6bd9bdca7dee23c3bf1529a4bf40977b307e945efb6451d4ae1c1aa507e30f653ef476c64610edb39201492434dcf36053f668b43746cda8fefd4316425c92f97e1900c62a91004405349c69497438aeecb876ab534220a4563138ceeb3d4edb0d70330ad031aa82dd62e19d17f62bf83dc3d4e2c3850d47efd50edbab06c9661d1ef274e856d8ae58564909625de2acf771334ffc3a3d7a0b1a382e8a17c1a1dc0f29401d9a3dd198a4ad70a740700301da40b468fc4232ae841489a1169170d5131d9b0a036149eedc23f2abba55883ffbfe4788c887e3248bc1de1b3677f286f1269d110d574d01199524d93263517afb76759bcc2728ac595b004508946618b55b0ca734431e85496f07e153f9707d876b6342cc99be864d9d603c645bb9731890d497d85d955e2d80e2e660c93968873eeca1a51157ceca558c0544040db61fb4ac4e20effdccdf950feb214971dde984cff17a75973b8d3a8cd27c92a8686fb93564def326e3cb617411892469be218d663a009c37e2d573b59beb4c5f62206f3a0df818608583e73d12366fcb1d685650d72ca4f533b928c0b4772ae645f0b0ad71bb8313a601723b8f90ffcc53dfcda9d092f8931ef168ca2f53d4600677833b9443fdc05db07f80c03bcf6e364fd4d85c89fab6a08cc9399b10afcb908cc4b6b6a3f6a4725bcf8de94e6515345e333a8324765ca69ddf9c61539d36c67e91ced0396ab2adc022ae9fa8e41d5a00168cd8c9ad0291f653af63e67b90ff2d448fdbb058702c551d323f5916ed90f6b87e354944e167887c5ea4b37703c8b0a94edf20d188ea989999deafe0a6de995434275b18d17a33b100032f2796749a385d972542dbc9989311068e84f3629bbb797f7c6f1057d99185009b5ac0d43d7b944b2e5f528cdb26ca14d995671e72eb725bf2de60289da1f06d78b137a79ebfb75425446c20b4310700053cf3ad58ce01cfb4d97325a27e5b5eda3cfe1009cdd186313ec3d16f005be47c8f38051cf2108b85ec43aa0d527b8d3bdae4e0a7a711c6fa69998bc26a9a8d2f7433f24f79c0dfc74a56083b42de7860b22c45f0c6e31422080c7a21c8d672fba60ce7652a90a3134f54594eb0fafe5a953e4f179ab06ea6b9795bc31a4f6a7f18bd5f1800a5263c48da4ad48ceca613fadea7741dff9d90f6400aa31519bef0b01e3312a5042ac35362df5e61c8e04eb52bf5bce0505ea7233b516321a08185fbdb9ff8434b4c6a88f880f594d100f46924a26f468c754d6af07f4868cbd7aff2caa53e5146df4afde9f7753484fa8be36baf89ebd4741b7260ff1ea398d59e503f5fd6c5c543ae1d318dc1894a48025c76e872fdc3026bf33a91b4618d1618554393eef6f7816b7de65c4bfbb55353cef9a53ad35340049ec65ad5af27db6fa597eae6499a3e5a192ed731915f6ffac811e35555ba5ffcb6628f812bf71a268620c161fe2a571921f5bceb4d0cdca776c7e52f68140845f455d247cad416c4de040bc37f5421e2b8bd6a049db84f0b3c807c3bb9d47cc7ac3ae9599ce82cebce8243306c0f3de6af1526475387c76751b7412a227571450599120570cf3cda19264136e0a93b4d25a160dee03d3d812dbf172618f58d09645becacb5c287b3b01ce4d1121272747648c50112c44728f66d86bd421390f2b36ed7e18b09a985a306ec52f240c0bc0957335483439f146b6c340f7e062a6059b1d47750c11cda575f8a2aea78ee09af0e06dbc2b2ac2b2bbef17fa108681dc90a7b970306522e521aa987e3ab6dfe2e1b3c6d9fa68897efc9e998afe55620cdbe9ddbbac8a0e22395d5628a
shared_secret: 6e63c5ca8af98628c02c8f1d520615a1a2c4824d5d155a6e51d181e8eb44c7fa
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3
public_key = 452bab83196c047889f7eb13897b3d73db6ecf5c9687c3a97d5b3fca3071a29cb82902c7a4e673f56842129c4e27254d50c2a9741abedcd925a62796d9a98733262e45366a5d7b81cf7c9b3c42a6b2f70626d0adde9311239061dd893669404058da8d209ba6a6825e796c84e765b348414447246f57acad8c933dcaf752ef268bd6246f6b57377cf82607a522dd7028b572319263c9a9805aa6501ca4ec2a182a25cb751ad6f0a0a23955986155e0a1b0957bb9afb35320da2b20e29210b2605122791db13adb91a0fed0b36bca7d6f03b0ca6c8597b56a189c10ee887b4429b0cda99d83728aa6f57a03d182685b2266ac1f70645b123c0ddf352520332fb5ea06e716b010f82c62858c0408446afb0ffe23ae9241be953b3d05a9087f8738143c3c66b5b3c61ba1240b99c2f50b620038d775706aa58cb0f7094d52c755b992e008c2419b3b4bd85a41f65bf633136867caf5872d551340f377c06546495b8882e4e14df8a958a501161c547146fa2132160fce98c830a5b42784cfec7410bfe87f185657a29508bf339c7871ab9de91423d23e90ca2bdddbacf7f4af0f616e9626a3ed4a87b9b900b2412b0b5328104479d33046f54a06cd88a3d0c9780af5807e3517e0c72d45b17106a136e68a49521364e8661636f250fb679d3fb649a0491d349a6bcb49a4e06552ec60b33f947e37fa11b6742ca9119f0c6953f8175deac4576292165f42110c99467b008f53e25308e560fc845df84b28eff321687c45d6d09d96533f1d0078af998a9db59cc51b1ed4ec6c13695fd33a768af521bc9c39bbf6c27c6266ba271e5d8cb89982077f553b1dfb5341b5caccb856a7608cfee57ad3dcbd782ababf70c4f825cbe1279b304c2cf134beb0268655951cd76079b06410737cc10550c16cb9848612b6b7652d4ca9bb5be64f08236b69a097cbd10014e561469b7a68723160d91632d67f4908622876a29c59682579b34a298cd01597887c1b4d100ea724ba3fc8960356b499825c5223585024a478d34561a98d0c23930473ad6da637666b454c7882f0a98254f41caee03e03067b3a001f303c651489c1d00a825537c2412826a73959f085c5d6a836836582d938b9d999b591019219c906f6712fdb52b13bb8708d0c570a00bc40f1168b80b9c11a4e72430943c2544e2bb910ca5c4f0b245f4bccf0f0c3a284757bc6c535c6a205b34cddc15abcd92dcee9717b413568b461e2b9035756a312414e2644422112b49a3a23eed98e07884c80a6291df38d5bb039df15b7d89b5021d691f1a165eab9242b34146f6b223195bff19c6c6197a5e424c59572502f69c7a8b633534786e4d8c1e280680361b8ab5657b74336d72571bcd12af7089d4a23c09a167d0a3bcc540b8be036b24664bdb3a13b62c11eee93c4ff5bc0bcd92f186741eaf56a5f6111f161b9158bae9691b8c99cbae21c9534da07d11930b96751e3c29a804195a18781e016b6af45bd23e8297759a1d1487c6212add88675cc3b92de46c09b4315c9a0cf6a5a20e7fa9ed5d594aa95cfa3681e42a3543429b9ec551e1e74ba46b79234b8c69c0b5f9553aa12455edd971ac29199c04a40d702128cb77f63d50f11184d2d0b66befa6adf7c2bed427c82a632a81497c3831e38256784802fb7195e40b571c26a925de84f6366b3d9aa2ecbe57ac61283f5ea3648b652f0c742b9d7c2a8c00ab5b611fd36458ec71f1c49579f96c1a774a3b4179ea63b4fd1e3b172b39eed1bbbf0d27aabd1befa0232440b336b53230bd60b88da4c116ac47b971de59a214a0752e75888172386ab2ba525ea50492a59467a57713985475108501cce687bca50b6c8840b03bf2a5072e8585f33625a9a8c17160fd7d630ba54c2dce9bc0ab2cae4965ddb9110ad612c65c8203e7b462ff86ba28abedb808f70818f022413ed5a9a3b0ba6aa24685fa91d5938a69693862e31aef5054af2f9849d3b1d22e121fec251c8f358a0d320efb9299df6194cf6cc5cf0c11363114abb8069e57634ba173ae199b080c1d935558c16696c97a5f316a4b8565c20b266802c60d4272e49c2a5ff794bbc914240f81317558a8cc862d9783630d90d99f6a68738219c44b9ad5c07b7242e85d71f2a958398e25047f494e7f6acfe339f98cc2d65c114a537b1259e000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 841dcaa46434e75228b0bc10733771ae67fdcbef99433463b2aaf2da88a98e1bbc748e1d14239a3a91bd2b6752b83302265c58d36f176b15988a3cdcc0f65cd72eb5486913269eb31b42bd0ccec456b72ff18f3801a1ad44c3ae6eebfaca59f2ee8308bd6c4c05a7262a01f168662dd42153bcf885ca7e84adfbaf6429bfacfde0ba36426b17dec09cee0591eca54dce505b6f23d2b674fba0a9dffdf7e77ee007e7570b31c71723047c3e8a271d6876261fc1766e1e468bbaec2a42960c2f0a3ebb7dc5d5d6d75a24245a375d160bfafb01cfa2c08831b1ccc67bf9d05df3a14d8f4b170e145311a793a92b1d59602e45328e58c5842dfa6d7021e1c65a900e0b04a79b17edec62c5d1c2bb8679174b45da0cfa336f7a0973923b8812d7b2015e73c42e1219900cfc3cdc93824b55724acaff2158d38732c429883b4d461b74a858cd167ba9e47f8157834f2e758cfc1c8f0fc5e762d56ead723cac0759cfe5233473b9706be8d909c1bfb2cdecbe7eb15b74b181e8fb949aba6b82e2c7c1d40bfc43cdc758051d1ad428a43bc7708ea9b46ea3f202974abf44644c7614769c9fb39de6ba9fb3009cff125fae0ebf0ecf5c9dea4ef2b9a8f26fc5d27d875e068ce3d319f816000f1dd560d03cccf97c5485ce65a77a326ed0fb2ece5cd5a55661c7b41f4b08486770cdc510f03b2b85c73b95d0d77b0aa75f677682d0a383a6e69ece0d5bd62568f2f50dd64ce3cd9e51556043323729b165e4c6726dc77c78025faef0653e54c6474834b9e2b51c66bfc8fe90e6e48fa217add307120ee0c00e8ac8988e5765e66dd0dfd92c80a3b19eaefb46585f0078f5f2de0b9c83ee10996b27b7c64d0f7b4d3be78ae18030bcd792e83bbf99529d1e7917bc053846268ded779a622e83f5d2fcfb0c15bdb1a2621188037acb8999ccae846ab2664792b043903c3e6b59c2645ca44e2b19cb21122035f7f3b222bf382800df1d1d8926eada144f880ecc739bb5644986f0a3c1b7cabcf3c9cbc7938802274ba459c1b870ddc516b5ea871fa6bd87b8cc5e47541f1dab3b9fd63865bb514b85155c41780b6ae24a02a06804a319d3f8d81383e7c8167853f3e24b35e220c105dfe14c33441f928c6dcf63a606500539b602f3b3f547a49545fa43f3fa6bbbd6049d9769ae5ac0964d00d68409abac87369f9608f2d244935aefce11e009fdc9a94c4a803eff45f989affe68c4dabbb291de0e7251a82bd5e5d19bc165fafa25465066e23dd905dd456e0d02ec3cf229c330d404b5f214a37363bd997979fd171584a296cab6e37928940f6bde0d1ed593903d86524449ad42248572680f1b573ede4ae27237e56755485657a5f542577700680308cea4a0d249e48138743017078e668e9ee556c7ef5a83cca9f96ca22beb7e30e2df1a793c6e2f402f109770ce7763eeb057f65bc0fec1fde8ccbeef1441dc98d059d1589564debb2a993ce21031c67d4d8c61ec53160be67aee11ff4b901bfd7c91f6e1faf7aa525aa8d15c3212ebdf0e3a5adc57690d446fcc9435caa5b1ed174b96d4da42851545ce1764bcae48c5fa580802eec2d1b83e4307c1da0dbb2a0fa414d2db8d6335f898fec5e391d0d7c2098e35dcd68afa8adc29d5eee9a9cc6a517ed310897e69eb23ce83e5ef0535c0f64d4f8d62a962e8af80f47a7f76cf735ae4ab09db0b806a9c4b2fa9ee493d69e73af045e6a1eb07b5bbd3241ccce8b5196080c2953cbc50a2052126ad754dc971050150d7ad4b319fd85cec8c4be05b55ddcd5ec7e804083278495b1601792464202969dbe01488f876d1655e0a3f4879ba41712c9136ba0f99d4bbf3145f34bd6f4edad036e6db0ba2532e35c6c097820d1fb069f9d69c259fb17b94970f2cc8284e5fd80f4e6070b4389bcb49ca99f207d002e44f6f0c9046fd89c0ddb1d86b01007c02920acafdf28e49d3c209e3bca054b67398b6c6c2561004c129947d87d33390d28489855074a6777dbf72816f0e1bf9488009bb0a247784c8a9b8f13a163d86a614edda8d205058071c12845b21e82ead309ede45872c379417c536ba446272ffb63d924d0055a92c320739d364e3eafcea6d10ee09a58a70c6c9a88550327070d6de72034b8140976856895147e2a1ab4ad062c7d299228a50b605872e3d20daea3e918f2dda9f8182aed61c93b4a47c5796478e182ba54c87fe
shared_secret: d0ffac51bd8b7e6192ac5954b26a5c64f4d0ea746b08d9f73602062aa8aaf7cd
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13
public_key = 04db6353d04f4a88b97b6aa5a6a42a101a535da323cae6c7dd757de67c24fc0c1dd894ba24c26c873172bf2c1ce63c56cb98189d60587cd76c2ff70cbea93a0d0767ff347a071333986226a8812677e2b5e18a15fc5b2d23bc03786b2faf8a9d2705bcb6276d2c140509f67a123a34a98bc879386b5a596b4fe77f0caa5145d766e05834658961a4aa3d5a90bf9da5a53ddac964e62216d0a6e39934f00c6ab988cfe6334a69480bfecbc7b100b621d471ab51725008a21f404142e489cc30cb1aec8dbf99038c8989ae8c477c198cefba1f3420951b660026c820fb406d19fb0878677cbb852bf5978d99d33f6fd7c3aad87585e68e5dd5a444a8369749ac03902b91000c0d986b26029005ac6daab8b0888a75b75bb667469525a70278945e2847cfcf242b420a10af98cdcab58417400b9d58b68f3670aec0ade93996a8e16d63337444d0b7de449f3ee63b30aabc9ac2b77d5bb13d672ce9db86770b9c21e11ca3f42c2117654c657da94c451c319e1139088d008179707eccd6a47d68677c692c9bc7790a6311dfc244d1c67eeb3420109404a86ba668e24c09b6308f3b09e546cb20db4117c74b4124946735ae70ec8147bb2e24784c3b4a24eec5ba8de3269054399a623f0050b5d0c10b5f5139b0786353504216850c85677bb596b2ac6a5fd4c224bf61ced0fb031411a887066d7a5455afeb8309058485386a023b6c58b5b967557a5b291698d488a131826b958df717caf472118d96a3b6882c1e95240909886895a0f5946aad1c690b7a904121688f5685ae775738307786c5a6915baee72b3d71103a96860afd696bc70b880c019e6dc77c38e33817db195ffc2f7cc37b4a6450a2e787d2e65c55748be376af57251974ccbd8b398858971eb5ac62f7156e9f2b43d6c54a51c40c55156971804e21869933771b3ef64d16e48ec5195018425d32b56dcce1844f33600bf366b9237f6ba451fef0816d17a00542433dd7312c474f2c1abe2e3a1a12b303f9d42891b12954473f6eb41ce2014bc083732e7a4a7808831ae478bf2865934437d4874b6e5132ee99c727798aac4b99c7494fb555a594d21bc99a014001b7d06612c2b3a8c7170e99e037a2d50f33e61156c519a1a15dc78a60afd1c2c159375ed570878c319db912c1745b90321ddaa48bfb80411197b2fa146315bcaeb292714ab7576d946b3927a280319395dcc4a0c431692c7848d10a36dbaf5d78af33f62c25e5c4fb009be83a5b93e054e587393c48ac1c65a524a0cb4e6637fdd90e43346fc9a45a720898d05b4d3743a0e2e40f4cc77237e8913ac0557db49eadd7cf00c3695379b06602c332f57da6409b3b888e7c06898fc4412444c677482003c73fdf07ba45ec968591c3445b14053a8077e664b9964956fba6faa50d680352a4c8378d208940722bda766910403970e3b50d863d28400512d7adfb372052f1cfd3b24ff4e46695533449dc232a14604a08b00da1ad81e31232412e72d180826b968513a2dcc724085a3ff0d5c3a7361f861a3e02b0308b897ed9d35b14a4159cf646336ab8c0e273a6915a14297abd937afeaa3f62005a001417d91699e4166740764cee25b91fc2c44753a3bcc2a8144174cea18546fc513028018aca8cff714d6eea7515db543a192d8695b1923642228394dfb428cf167201bcbd1e217ed1e2391c616db739b09c9a0996c5bab53bb5e1bb3aa547937dfc49223897034bcfedd55599e15641bbcd1b0072e11ca24ce7a828776fd0c94bce2738eaf13075aa7340d51b30fa0caf857f1c5b7808048917e7490ab0739147b7cf229953a633f080ac80c495f5b03355bcca47a94b60e95d72a29147f2b677c6a106f905f5349933b0b7600358fb009bace2c229246aaa51a95842cee212c11a205711125c4ea14d68a833c2892e8bd265bfab3e7b16cc2d34adeac46aa6e92598d45d972577fd76a9a7b954ad1bba6ed63132a375aa29b9eaa42366e2aa8da0374a19b16389a1b36c025168584a91a4328071de904ff9162a06a8bb9b9030f4571b1166133bd11f9fb9a2214c3f838a0a6106359e778fa7f504c6e719ed9c2ac66479eb1b662c8571d7e398f80941bf2ca0b8791bfb51693fa95894f25f2ba53882e450eaeb0b3ca706a936bf22f6056588144c1c3219f0eab96c000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 8106cd6746bff4925c2620882d571c50b36b066a5ea43fa6528351d97dda7dff1d9e9ee6ddc640ddb88851844c388727c918152c41c814be39f274183e116432a61f9a7c1885f07bf118e4ba631598fa9b1e01e72a68ec43dba62235587c9b9dd1c8e806174ad612a2ffd477e8d0edc2ebaf4036393283b55144b9c83cbb31d1674565abf29a56980dc4a3803a389a20dbf78c78a907a5d651649c27c9771ef436c189d1922564397f5b5594d7efa951ba7d05962df80c49c1f73029c3d7899852d8a1fe03d1245a228028cf713f4403abc64a9093d782cd1a6dfe12a79098e07f40904ad146dbbdfa919058149b051bea097a60aa0373cf9c0803e8da99c03a6b83813f99adea8c87e6da09013947cbbbde8edc3b7ca29f3180882cb11bec706f4048a20c5938560ea83380be5cd75f48d77bf3360fc131509317dd72b9340bab91fc6bf7ce099bfa58d6c5a413fd2801a15ce7ac6f6f2c0447cba39987a37695468cd0fdc982631d9b0354205194323e74d41c54e0a026c4e67467b5595aae7c8346d1bc5538ad0acdd56fcda32f95dd7830b65b2d98c05355a3ad9c84cb43c23ef9845250888ecb6f992da17f769a13bb7bfd621571f98b42a9aaf19d0626d7d59355d9730371b29a3868b97afd7013142866e0b2f1c54841de47c47775940c58475c96a4881bc69c6de346e05f55cab15d497392fbefd2309a834c733eb3ec8df4ae65ccaf690af492e39d0b5c91d09b39966b31b47ddf6751b481966f19758dbbc373debf284640015cb197e53120e0a36ab02203e0992f35b4c8347021f8c4663c996597a466b416cf271e04a20045639635b904b63250817c29451dd2ada5f3011500f705c2f0982d236ee1cd02944e35cfc6704f0e8fa30d8d2d595340b4245d3f3d5246d368062b53f06ad365dbf12c0fe7f492690fbf3389d234e76a618e63f785af41b2f4af70be0bf0a917df6a5f34683d931604c6df9288cb9e38b8d8396ab2e21a1c9a54f4dca2a4985c3c4aaf20af5e6fdd126860df422a894dff4a857f2a8aa54c4bebb70d44a4ad15d47497be7e0b7487003ecd6f92cec84bf4c459eb5f480dc20bb6db735cfaade1ce33782aaffa6a39e4f2ce9e7df44347b91d75bbe71b824d6302608dedab325d00163cb9e0a274ce49717bd6ddf4b9c02fb6986a8f765ed565f48c10dc90f39b93aba1a69a832e41f2b0dc2113fee500c99471ab67e3ab5a1cccc0f92273739eae4747de461ca3ce6161b558577b56af9e695a978970473dc671efcddda2bbd8d15fa6eb8ec0ec9f479bd9b8d3dd4865460846733856fd57664760bbd5ed354696ce6c8b44c6ebbcb07920cb6c3cf769c005503add472c7374b8875d714d25c74e2d4390ea455e00208763f56e475b630a30875bafc70f87f541bfd0a28839d441ce567db3be7a20e2773f08ae73f9686b95623fcfa7b1b3052d64448756f9a7481b1d9c6022898e79afd4c2290a9ed2e0658c6178826ce94e0ab460798a88cc54558c51239bbcc5347d59ac87fb6580f84aae6492e1ca700093438889fd50eb7028153e8b4675fd272667fa022b17029808b88df427ac048d8b410f60a56ac39220f8b509ca93c34c7dd62934f62a7e29aa3b0918299fd5c56b3c3158775a3b3d5c78aaf2f656257fdaaaa5b7daf83294b5fc48d08922ea6f5487d647c30b1c11a30d2b1690958fd90107a0d6cc689441a36d04039bea83c447e79b04bdbcbab04427949855aa1a32790075438ca6ae6f7897581b4489ea1dbc4c025fa1ebe698959a8145e8f11aa1cb6f742d1be789cba73fdea457eb0abf1e814c931922f451a7d59514c3e2526b1378be1ba8ce317ec3fe2e3d983edb346874f5251d197ea02c7b16fef2b7ba8cd3b0179b1f935d4aa4d463bda2d5dadd6ba96c0ad630f1eff86e34dee3f2eafb9cc5f5ed13dac2149a583e2af8db3a789c39f751e645acb58743646c6f65bb12564b8f26697e80b8d9636b0833d71433a0465dd501eb313158275608390568c7130ae5f998d3819ad7f3855d26ddc9f4ec07a36d191450dd6502a28665eaf8235a3f10b90aba654c70974038cdc9b3335d9b865da8a07be70d53f6a5edc7c4a5f4b5220c8e7fc01f5740360db072a4f8d7e80246dced5c75ad642ef1b41841f43e6e422f4f9131c1b3f505197f18571b057ed1cf2dab2f37dcb88082f8d8291d13eb7abdbb14
shared_secret: ab923efab9857dba5a68f9198c4318f54a42aec38d194133eb7f5dc172478e79
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a
public_key = 61e61727c66c5cdab43ea53041e25b36b56a323a12f70c99eea25fb4d387c1aa2d871244021a45ab27a0709583e0c8652db31167da21ca46b84002ab009a8659656876a037e844b6c027545cc66d783713a79b1bb5021e7a2c5deaa900e595503cb1bfc394cf65707c78a97ee522be49c2c08de89336b4b50270ce189bc81fb6a464a853262791c748714aea70e79a6967e62566492157b4bff737804b014c69f41eedeb07e47cac957b4ca937cf4c907189606a9187c700a7b6756c5694b285ea6171625038f1c729a7897e5cf853aae66104fa1e6c66b86b643b1e37838f85bea35132a4176afefb2e6254433af76d5eb455b11a0624fcb63f7310b0c9b171d62134fcc361c2a58b12b2c53530fb658b83107e76006e43ca74d9093fe0ec4127f5866c306b791b5d033cc834652e6ba485efc76b5289304b3c774e88ce0173012e0203eda7a71eea170517114ef93f739501c6f9c9a4d56b77494f82c06753a996f33721a56a003167bc773c44d685a2aa45b61744058a1a097a14299d7a5257e27f8efa796776249878854f458d7e4b70db914e888567e5aa9cf238ac4187bd783570daa77c3a9854c11c80bee12374267da446cb1a3b5177c112a3945a92596093f77c3ea9bc2f95452b89879bb6c0028b653cb6c804d2680da39cb99233067c7b9124a27c4c6558a641718588709ac86d5c57ac7a1f1aac68c9c027cd2c0433a139f17b2972a5a81fc8763ad92391e818a8b77c43fa7e71930ab5934d58301c723825f9079ee9ebcc8096a1c4eaabfb5b73f070b43c3112af289c09d908fb8a2ab48786db29c2dfa82a16c6c8a8b34f83583a6fe3a630b639631742adc422a71798974727e2a80b139872df5420c60954a453633bb99dd40098be6952930cb35cda52a33c4728eb31fc7048ee5176ce947b194885395163af5aa5f2f53fe8c9246bf6143d199d2a797dd62b0fe67042fd455acebaaab2bb61ff778ffdac5edaf8778879c5517911a468a583286bb4d11a7f852ce921cec823647226c96110063d02a2708364e585c5ddb3914a27123a8c6ac89c6f98260009f172f644b10a27201a73812de28eb9f04cd0e4a19080001d082189b7b85c788e02324b2f4b07dcd4aa298b44b0f49efca0b9c0811b57729ec7ab7f0a6a7bd14c220394a2609832a26b3b8c29139af994a5c96bdcf13d8fe21c225b5e5f5aa2e0c7a21ec3a8017c885ab5a694aaad999c6ed14b77dba90fc666c0ef88336d79b3093719df8179e25bb59301a67548cf74122954e34fc5e94fc70b931a3669314605d609cf06f25f74f76fddc056cfa4654094b724636f49fbc3964a5ccd79580cc8a15eb07eb4061d528a32de192413d388b051660d43507c49720ec67ae41461b5ac87cbf91dcf42af4d38680f450acb9c6cec903807153b71613f02900117ccaa11e2cbd2885187a49089b63c3f1106fd5a3070a38b25c9757bb9b40c80c6fc4611334c4463e1aca784af6bc38584a72ca4db482361314fa1b18da660f440ab6c9167a4c18afe6395cbdc5320fca49aea990e12ad6863a0725863dc1009de81abf3d56ed4c70258096f6647cd3c5b1033512a742984af1a08617aa63e1b754ec93e77eb1f379532cebb7d4421a58bd133b9ec264ffb252bb8b546961e2f602aa45c5c20756f51c0ac29983ed95036758b05f6d90aaadc464e914004ea81eb74162d8a1e4bf986120c1e9d13cebc774677577f86c10addfba2b9486f9123458fb20e73c32c8a36a60f457074ba640309a7c9b744413a5622f43ef3785da0b77739e00f1268b50e04056b0c2071f8ab5451cc0d2861310806a4f180867310b03c0fd0d9781b3315c0da53d30b5a84f27962326084b4cf8e88a2087b420a9299c34a517c088e12ab2f54f35bc4542b85d455f6e9307c949cfd617dee8153a46c99fdaa1c00795296e9816e557369e34bb25b1555199dbe0a089cf83cfe019e5d013c6507294ce27e51ca5e805b894c13655ae6a0f9da6051706d46dacc69ec3898fc58ddd5c75e82345fd8137cb606a7707b4d3bb801f77b615527705399c8448f95d3c292662957e48bae0004acb52e55385f0cac2a9c76c471e2654968113c98be84c89e0a49040ef23751521558e677e32089a6969beb0897f74a52aefa2a087c454ef26efd08a555d6000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: c60d4aa71649960bedcfd1ba225807739b82f912425f50d32153167826926e51f8ed961b5439fcc7a3804d55ff46d5b873e13a0c8ee7606fbb21c5e121fb8e60377ec46ead034bea9c44a685e7a588875e5bc2dff98e5529cff460ef5fd1ede8d4cf2b02e9a537887028150d0d79ee6a0ef2f0d5507c42ad1d788a75899d0b7243f7179af88cd6b7fa41849f1f49f782eb0bb727a9b0fd51ebe3f05ae80fe7259aac42c8b0a70b7b74da297c03dc1f06c44edf72773958e5a0d38aa91c35e71b27155e875f3378ad6a2d064d6d7cd56689b1a42dc4a26ce2cfc8012e147940980403bb6bc164f3a0f9055867efd0bdd3ff4c36ad8165aaba00c8365d217d4bf208312f3ce9fbd7bde30d6e4d3f1a98b0a20f947d03b45f3a25ad481fd1dc271a0cafdcc04f02d314ce3da2e1aeb00c7d3a88ea3ea2783b75e16768f0aa122db015492b0ac9bab3d3f85fe6d8e32cfd66fab8e3138402f690bfd3a5fcf09ca27cfaffca96181b8a906a67d93303069ff91c2e3e6cb26c5608bb04e05ddeab18ad3ff916bded7e9e27c99492b7525f95e02833ae827c48b1f4ef06b77633a66ef85520768b64641c5b1b3bf319c390006a026b3a77331c530aa5a86d0e329d4c7bd729992e3c574876ad9a29d79b09018e850e2e63d51f75861af33e6acbdabb722d41312294a9b302aba8e3f04ab1f04688e373f86e3753d84070bda2feabf6b94617cccae0fd427f90f43d3b686fd772292fe1c93f355fffd2683eb8dbdf171b69bb6a5c929b7109744f542a21539e04151ac7e46f5d4b8b151981d4860a366d3500c3422a2bb5c24fced0221e1b84b9e5b587e9bcb87220dd92c127be67a396ac18cfd3470e715ebd320fa07097122f696ff81923e4c2d3c0310bb8b70690dabee4e17efe6d871b32eeaeebb448f7d65fd60e7a3f32cd07e61948be330179dfdab4d748d01694d64edabfa95647a21ceafd5261cca24a0548a135ca1f7c262952bee7a291857062d3546dea97cd745050121c82a73ec9c0095847e0563229ec36046ee1564ef3747b49812eb2bd015025f077b56d63500bfe523689a6be7b886fd8aebbff18cfb6e4ca18c2d0dcbdcff8fb7a9e852f81ffb39245abc6ebb9f58a28beb15942cfd5f797dc867f7a855a3e6ecbdd9a8123ecdc30c7240d44dffcbdca05bb17d524a791ea32d60c65dcb6ae3ae3b724ae7da36b88d3563a63f4c059fc83c97ad79602cd7701749f92c02bd65f505f407b64ab3f8417d3de5631804eeae565af62d7fbf95bfe25126aa2494368bab7afabc23825d6cb03151222bec05b09a3fabd5937b7a0ff17246564e163d049e0724456576f250045d13d99aa07a5f298cd76ac73f69c3547ec9a344998dea3448a96480ece462922f76f1fab68d030796bcf570298013001414ee238a8ac4d7047514ebd5c3e55e051846403acbd3d7a581c1d53084eef20edce56c2f50443440ad0fc77a955c1e5c4d610cb45f43435b1a66bcec638ce88126ad88bd1b0d10cc5aa23789d5c8f4d9c63cf796e1ee6f7fb309855f332a648c731775edbcb4968592f1f633a3fc74bc5fbfe9c0e74d8379fc56f869e63d8db3b9ffa92e9b470e668e10acc1c7606839f2ec0abd02629007e3b1300e558e5afd136f949eb1e6ae56b5a8c21d15ec4b62b22af89618501c1af9992a3f002242288fe01140e2476ff900afe32685afac7baee893bcfaa54c1bcae65b2c9db04b1e17dec3821145daa041150f3282a500ca46c535ee47ec02b1a1639713354bc4ff7217ec169a63bbf26a26b2c712b02c76b56a8ed0535e3ee1c3f118f2a68f9c699ed8702f3eb30328118922b15b8399a3fca410dae21e7d762e6e45c8de7ff023a75211e42d1acf1d8f506223cb281fb9615b2de1848ad674236e768a0f315041daab6f491195453081535f9235f6d215e5750226ae7eef4df26469cea1d0541e7932ad917fb360f4a9d5601126b1c76bdd1696e6d59749635b844c9d416a12d0eff4c4a9e7f40860b047ffad7bce7439ef0fef50cccbdcc848b02f66bf67f2d3cd795242896c5f2cff82864b1d1f00974c9142d0b0ef2a8d00289238e822d352a924c689ab15e6e5b201ee7ebca1253b9964a04efb4d7af21c6ecdc03365b4275d72502523d562209a316a88163ca33ea279702309f8c2373514d459a5298ce6999571072852d996fa8421fa594069645f034d3
shared_secret: a6ac9ae3077504c8a7b1e5558a0fb1e7d60cd2bc3e59d615e68d5165e4903d07
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517
public_key = 6328240b1a7286c71c5cc17284fb5058410381c74456c1ae3ad93735b6c7d0e13621c924a67a44937039df4b4da608ab49978109f077c961c2e6d02cb0f429fb04bf7b32afd9e0748a50162bf49ab17602717b25800ca3c762145636adeeec6543c43dd20a2a194211030971f16139ab86a22fe07664b425e47240ee1101cd171bd681a681804d38bc4cd562b7675a1a4fb113ab476fb7e67009c8ad5edcb053e77e99d10a348851f266919d29204f5bbe27e8672ed92e7777aae4141a8e81a39cd83a30005127289092929a41b42db3ea2c3b9b4e14a02a45906e871b5ed4c5067180aa97a6967642a5ea52639f27665a78aa24511ec6bb8ec7c3ca2fd34fafd5b5397c75c8144894b56d61e57ef77725ed8909afc703c6cb858fa1c600556babf3cf4fbc089595606f450753c727b42c7e8a8c470ae99e40e518d73684f2810e1ccb187441873fe14cce8628efb360083029fad17c1a9809daa08df859a0626365e0f1ba97ab9bb0d09e3b2632812152ec6361cdc65307f916b1782eee7873c2313089f3bd0c5ba938b80f1b43c7fc6c3f801444a34ab9c167629076442b1cb34c9b02941368c6377098a7618ae352d7cb1ed9419d56158f9222c644f58c3efa5209317a165434b86350c1a94d21fbb065854534120e665bb73266b6a392a60fda82b096701cb100aff65b44a40a4d8c83f8c63621f44a6de22f9b4817a2772085a95597c309b6423b9710cf72720598064717b52a336a0d3d9b6092e9a445a3c507e37ea9ca126b1b8f4f702d55959faa7b80322045508b2025ba64575049738699e2e1a42630c80615724dca7e98acb40f6415f6907e3649962c451f31164e88601cc2c37a65c636b6c146cdc24e5ce6976bc3457277a588118712cbabd8dc273fd0c8c3835fdeb500fe035116f6beaf437354c39e9152c3c9999f5f98281096a0f1cbafbef24e87bbce8f88377a0a3541eb128e31a0d77c247dd32180b97bf6f8bb2f611e7a7927f7ca25706cbc7b52598b4865ed8b520aa53e6199a96a0bc79a09002e07bcdf78473b273028b34e7a7c9f71ac38bd6327ea4c9acba59a07b59433908a3b8a4cc5a01d704773621b4c750389e8557498747ebb3b8b41b99105756205b2b578f668de8c293ef989a934cd1c80b18d700f7666986fc445854c9a6bbb8c9ae050c6316bafda5e98aba4ca0b92e3c3a43c504e214193b43c9c9ccacdf4ba85a57c6da6d1a8b310c4f0b7390c7001e8004beb92bf55cc8eaf37ae07738a090018e843288a965d4e8bbbf9a18730106c52758367361f558272f3887762ea91c35a23a708394b8a3b505098f7ab8ba505bbd1763a0339084f3ccdb2e68ce8b032bc217d51110c6cca10f277142a844ce5e7c8800b5bc857613deb0e5e59b4acc72f0fa1bdb0f016ace9b02a43a49e83c207e8ab82e98fa1144a47809a5dbc5be622b1bb364e8000cfa2c203f247706b3b3dc520bb308a62bd893c3bd890102bcdfa1b6ea91cb5f86758d5339396184b2ad4b36d6c875675261658615e55c85839cb10ac8c789959cc675a976c4b88146179d38820344f319b1621248577294d4550a33e723d65f11f3f654f11f206a7b4c4b909a4b1490f41d68752aa4af2723ba9c092d371c0e2459c9361230cea1772ac0990b6626a9914b20769c51b2df3996639fab765164a7b61280049ba14d55a98537e85ca0d8259b14ea4151c787d49c9b2d291c9e2b005c13a3d93a88840f9a19d30c346b14b413c150818850bb8585ef0263b515a74e79032b3c561ea543d652076a38fb4f769318378510a8e277334c148bbf38868d74ab56adb16f75a6c4ecbca6e1ba200874567fa5d1bb42527f123faa69bf2c45e4e79022799a717c21260e3585d6a86b7582a1f166dee7015abe11b42a961d60750e2e40ffc82588448b515bb4afe246c875297ef87740a775fcbe0bd902c67b9830c6d318523e422b0060bcc5a5a5f7b267f5b53e111c7121b86a6025a0fc2716fc11025c857ae1926fa7066ab527045d8244c75bf13a1a3c6688811d35ad23c1435b4cd536c6f14f78bb5d34b4bb34548a375b93234c63645d7ab59580567f9517604837fa6f98b2b4911d9946a54d0ad2cf0747b4081b904a2d6f953c70065b0c4b698e556daa27cee3b40070326f43c3d93a7cfc649000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: b0ea35919c0560ba7caf9fb6352b36bba962cd45d3d2b7f6bd97ebb2a3ba6df22e018390330f75cb4eaef8c9ee9bde4a1f25110dadf363df31f3f8702a3c14d5d2da303bbaf0fb199384a2702f7089fcc63acfb29d5e53571102566866898055258241e5ec4f1a325175cf3a64a84ec50b4e8e511ec24dfdaf0ca79911b1d84b5a0872fb1618edf364ea06d7287c6ac39e842c56d6630ef38f4c812a8d1fcad73f2d4ecf8f7033c1f5ab982c5b6b8c5545237c4a3ba8d5ece30dc93d1d4f4e89d3bba0b8149ee5c2df793c8779d45de92630b292714582387e60769209ea7d00e2f1173f8817567f52fe53d908d11e8e77375e7d2f73f44a01ee3c87c8f4163c579c40ce70dbc006ad2426667650c35d80ced3df0f3f626fb52f57d874625d414aeaa658a220a4ee6350900dd7b1b9e165661b41cd0c96c3b665d789a297f6b7b4f261e6dda3f6b027ed8a308f1168627f71656bb0ad456ed2b197c672d88ea6bd61fde6dc3df7e4d8b505afcaa35fc1d9b5df57b69679811ab5b738d62a5800555fe282dd4d06d5ab25a3847b4f22725a2360d8b47c69458b55f485a1ee75918cefbac2b4945c20a7356d1b7c69f1c047ba355496e21eaa2123b5b545e86c23d4cf27011e68611290161366d6c12b340292113d3973efb312b1474807f8cf735b76bb3a722aeaca7b865530fba177f9016d1ad1a7bd86da6f657c32d6662e57cc691f5acad0faf4f21027fd761ae23456b599333c9af918166927c6253dabe508c7d931d50cc824c589881b39087e02b52276b9d4252c08199dd4943d72b4fc14e603c9e901d0038da715973b0d168b13edc26b20e2649f37d27c9cacc7a8508ab340a1c3ed8d26099171bfaebd39b0b9fedb3c195a381b55c13365139063e5525400127cc963d9659c964ef3415b31c3a2a923ed3b96ffd327d6eb4929ce1d0d26232b46da119e5e38e71a2dc97bb953567bb5dde9c2d19bbd208c85b135bdc885121b5f7195904d2a9141bf5222e98f95ead571db8fe2df9a93501b8fb9a06a3ce0338a37920fc4268e26e71f94cc218d6fad6c2cfdbf0a5855b186ccdf10f66f01f884f22503c530b3c5ecd96d9b55651b1eeb3af62cb7a4cf4cd185d98afd1b942e8f7eff849ce843e113e82c3a875fb996161e0d0185aa99e21e7c99c9636cedf0dc9aeb55a37eb1f744841f5d8fb3eeb5eef76039a40a5c643957cc81dba3fe556234acc512efa07f3a140ef28a93ed9cdd2088456e3bfad0e8377e69fbb3dc67f3864ab36f8f8422837e067c20787b80d77a30995e5d78f84804cd7c897d0ffa5fe1e7b92f17575d94512b6a4b5888a3cfa6e03be3a50b8797f43a87477982fb241f24af59f13acf60ecc4c11e558b1a4feb81f69acd5a67f56bd698888c9f00430dd8f8309629f7c29e96d2951fcd8b521265c368e13e22fefa30bdecd51407387c77259e64a62e5d705d3d46be5b6f710ad86e844e509a3c5c1dce0efe4b1427bcbe56758432301a14d8b882a70cb5c587e1636ecf96c61998bec7a9b6b98eab92be2e30b30174c87bb8bd66d13282dc4d1b67757435807a90a0b268a9f760054c219bef6c8811476a56a14994c760e21a1b786efda3fcda5acd859967b9874eb049a9690b0acd97c907c1ec6b1bc9790b1fa6c8f15518b9c18b3f0cf672d26496be193602d909efc2562bf72e83a3d8244eea1942c6b6708f006963ed1005615abfdb57cff11b985134ef3ca90116a7ae35299d1627fc05cd40cb32a83c9f9e19570ab0b4e079ae34402641e47e1f0bb20b63e551dc7c090421bb1916e970b33a6cee4be985f28ea66cbcbaa21279b45a4d3927eff26dd1d171f18ba8c5e78644d6027e7ace96ab62bc862d8cd69bdc9c07a4d8d66ce2a08601783e6d40665fdc637aa813a447361ccd9d843bfa05f5e88f1f74a4d6fd1bdeddb1c50523d731cf6cb4686018e8518525a83c2aab2fc5ff97ea1562c7cc7347482c96675b0b249f99428d68f180d6590c67025e41c80468a3edcf147368f3612456e9d73bc4d6e0a70364036f75cb6657ea99c8fa365c165d7fc912bc583f0f4e57ba0f531544282e21dc42e00f00fc59273d272a711748bf62760377e5c30c1776542936a10fdfa8acca0b4b5e5c9cabf461ed5caa9124c59a4e867859401c158080970ada9cf76ab49e250411a61ec5e83c781c269b75ed1c193bf8134d7b0dea
shared_secret: be6aaee5bf0744e7ca1ca0e545171f3075aba9b4d10a71ae00848c8398e3c52c
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1
public_key = 2b1a5060745e8525bc617900d53b414dc995772543cc58a6bb7c4868f8999509428a3244db4081ac6b3f3c685865814c318032a678ce19866754c0774b31cc47a6a8e3cc90d6a15e54c7370c0360c38409b126c06d4b06b7d652318cc810c774f0e66e7e547305d03109030fded56940d472ee123438551d6885922ee91889f97ae31954703952f4a3951e8003ca2836fce071e382373c36a27b947ec8766bcafb1a3105aa2b082802b9bca0e4c50b80cf9a4033b44ba4b8a2cd6d480a315b08e7774d68f8ca8778894bebc2ab431d63c931e61c5366699b65ea448c127b82ea493034616fc1b6be01243bc84dc92bcb50aa4c7a417f1b5268e93b35ced9cd6263227c849dc8b107b10120f9f690706cb0ddec8fe2b20a26da422604c9135c58f0b06aa5180ccb55adcce07e51f885998398c4f16162c33b89bb37a09b84dd0a9d0e8c90a71c2851e33b3e9cc5531a76f81992344161a837608872355d57111df72412e58c5ff85b97ab2016b41487f56a9fbb48d2e498c2e12d3972c677caae5e439c598b67520a7ff6ac9c2424482988153b145d6b40973a1582b90a5bb76716c9878dee223046f746f08323ac3a5390a6148d767c3054524b7247c26c9339c0642632710b8a4fe0502dcbc32c35ec2e1e22510ea4abc7c74980ab25f9fa58caf4a70eec2d22c1957f162f5f1c5e5ad0a0fda4c342885081d3070d773cc972928eaab2ed604503257bfe448ef2a9c9c933055e633a339792d24a44769b95123c1f9588c8759a469c049a75bcad2e6087559c8afa5b6415a8825567aa44f63ce5b49ba4fabaea311918b804c7fa2d1742945f39bc9e8256b537128a9735a0939a1150c10418551723154cf4c027a5355e1751a9866bf558672fc68324438f12d83551ea49b358cf873772ae7853b53c9627ec75479c746a116c5e66b20ce0478c490946a0af4a3a3138534c2c94a44bca955e84513f548840b929f4b4ae51d53d52225a21b320d0d8b075358b019720c325814303170b627fd6856a149214eb192659d21001d5ba6953288e5a62d141ad5ff31c413418f332947f1441b8663f95b1a8ea35576e725a83177126719889651e8f20a8fc2392cdf55976651f1c177c5d8bb035993b0f2ca020a8b22b27080c4161cb86abda574deb0c858d14ab4261b1b8718ac12c56db9071a5acb00c4b1fcc9b9880917f53cc12bdfc77103a45ce8a2f4875c7e3711b659b967c5c26497c6e2903198f36b01c56ac5d054672d6914498643ae6b5bdc2447300737883306e4250ec445b543bb06b6113db5369da2b02dde3a11b2c080732979676040ddb2941956068557e65e0c4ae9c2834671f9ff65c246b31dbfb82720c8f014aa35d343b8eb762219b0eb802637574724595ac1c92b85e9a416089a2366ac9002d01af606ee9b21868e72ba96c6d5adb51f97c778cb8653e30a253b333ae5bb600a2b064cc387b38bbc0379c77dc45f7fc45fd060c60bcac60bbc794d18a5a8ab680a0ae202c97c3f153d07058017bc0b74458959c2a358b6c3733c60374a2ad540c75785ec95cb0bc125df1e8359af2bff55026d18348d0eca6672a87671925a8568060c09913993fc6f89e2523023544938a573ad208761e3ba85354cec6d999ee1c5f909bb973e0780c84101cd3cb42319b0d5614b9d103be8477ee9713cf943e038a04259c0958376c1013445731b0a5224402845499f30449f0800de86b614718bbe333b4b8245fc1a8e0c43eadd61f11f532ddb7551686cb8b054b2e90a19c889ccf68394cd501fb92a7211b9b599b2a2b637dd4246a7b8a5f713acfdeba03fb513f998177dd8cb216aa12c27ac3a5b84491738e5a745cbe7a3b5006bae6a08b0cd79a2b27af3da8ab021893e7727192e28787a052df8b434abb0f3a5866368991aba8ae3c891a0870327c3967eac16e8bd725bde990ef882bd6e5663d50b7adf75048d3202b39b44606ba1ac33fbb7a866a59a8c70988705974ec413abf660d5e98b6d9c60454a8825874953d778ac527578769aede871242b04561ea2d6e5c8aa04ba44228125bdb4beb90ca152705716cadd283ca2fd83ed9087ac5b2c7cba9334fe936c69586e3399fa46a174170aa8db62bd7095736012b49111e73bbcbbc89391bf70af7bc3581777c54d74ac2fd37b453000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 1feb4f1d63f08052045012a21c33c2951b16c4b5ec02c00093d54ded6f94309e44d558787273bf593ac4bd77a56fe4dc30a54eb68a2f473c31c239ba18c9ca489cd50611fcd3be42f6f5069facdbcb7166a64ba7c06ba953142e5914ce20ec69038895c9860e69ce6cc3dac6c1b28d30fe83487d40591995f091d4ea116ad2675e32bb83325b7f379449dcded935027120d01ee43b2208deba910ca7ee635c5b928e5f6167307c813c8e7034096878a2915ed2d20898d8412ae61a72378a4eaee2f227ad5467d04ab884340cbfde2400cbdbca7e07a2f14016fa9e403a2b0ed27ad1dbb3cc492f584a6b5a7525baa628303039f69cf1c1e4db920ef7882de21eda5d2bad76231c88a061fbb2829fe93149c69204e2e783009beb4188fb876a6f869eb11b1c32c2ef15f9aef62f699f9692a502a4d87e5a497097ca73f8fddacbc03dd40a53abf267f749f9ac0f7b4ce9417a0f5eafa91fef75441ff7c887dc2eab2336fd257d4cda373121af864d4707fd20965e063fae456f0bef8f587bb385f8e5c96592c9b7d6c284197ca1706e1961dadf16a2264f74be425ce117a95dc9466474c856adb20931cc920177dc3f8c93d2bb3ad5f7c5517f0b7d141b87a8c287207e64158934766c8845ff0a480da124716b11d0e257206f68f2d4334e8e260895ab83e218e032a35f8d792be7b413b2679f8044e1c0ff67c474ef4c9b7e0dfd3d9bc4252fa81922cb146417dcadae7d7a7ee96e13bd480c96a4314f31fea83eef588bbf1435528c51eaf05cee2f193c3fc234d695ba32546ec77a16b1ea8047498125f2bf78dc9510812be57fe0ec77bfb3e28f42a4d15c2a2f0b54aae023ada92395cf384a1524a24e36ee2e69128fd2ab78b5af77d28c2e9ccd6c706315d46887db0c0c4f28666da7437489e3b245a19fcee97f187327a5806d35889e63940b19249d627165727f66f50aee62dd9496d6493c1f01ed0091e985048c2aa85a3b25a4f90f6e9f9cf67d6961ca246d763d3437ad64e7bc5c58b10117a66c40be088c58a27be4bc1360d114e61d002e271c4806b872f5ef7127217d5af6092e4aedf8b5c40198f266f9e10c560d4873668d58c912ec7ec18d27249f5be604a82d50421d436a3230780419bdefd10f049f404184b3530361c5c0644c3205c32fd451f6c6919487aefb12a75c821cfddeaa14c2abe20db3ac57ae0ee8ac4567db2d1e2d0920fa036351e8bcadbc14ab73d0868df6ab06e675ee193722f93f64a5344bd70593c23647152a81acb4d1a08b62b5f0b2669210d5d7845248d95fe9ccd796d73e34af955d1c94edcd2bba91be211cacb0884a90eab8a0125130ae65318f5419810f4df129c8504def662df4879e2a8df02d881e9990148065942c0d52865425f3239c4a4af51eeb85e1baeaf647e794b9fc04ea16eb328b8b1d0550e5dad8bf6248782b530735f8f5da40cf21241a2d62951cc9e894a339491f64b78d436c635eccb855d3a1f7d64f63f23023620408df6b3d190e7965d219a0cabc0933f7d50d9854e4d4aa7a5cf67b37e0475241a5af8e5000d117ebcea40b526c5a669dea1760d7fc30519148649fb00ca434f2cd84862a2755a99531854cdc847b7d5af3ede653ad6959f49c921d4a8675f7f3f51416c39e026488c297d844a8429caab43671093cc3ebf8730a18bae06f10ff8047cafb8d80edd7630c95d008cefca78f2b08ccb330d36eb33b18cf47bfbbcd0e2f81daa87160f421603d10409b8eab53f1561623f5167dafccda4f9a4e6504a0b5e67ab5dcfae98672f4cf62e4f152d09f2c64dd81e3476839aef8538a86f3b616ce55adf1dfe9451ca48acbe210c32ea1cc574730b37d4747b580c66820caf475858b4b6ad0eb7c06ed56b8f16f83595ee3466bdb8aaba3bbf35a177fd6645610b9dc238571e81b27b94757c9004a4c512cbad25730bc6f85255ffdcd052447766219e667095d4058e5f0045e16c0fcae1aed8dcb7c25fbcaf29a71a8abf72c398a61b1a57bec4b11a8c746bcce3ef0f82b9b2bd702d92a7fabc1efe0065e662270e1ab664cb1197f00983f1d265ff738f63b93d5d95aa4ddef2ea3f473440ce7ca1558b28fd68ee09c7b97e9d4c2052fb1dd657ecf09a2f664de0902f23bacab5d64bd449a0ddab34d4c0695c67ff5f6e11044a0db15d2d19a9ce2aeb818f0ecaf8c1522276521b0193f76e2
shared_secret: ff81d45deb69b6890f147710945d1b750cf17e876cd4e694158efcaf4fa2cb15
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0
public_key = 101738f8f11e10897f9b1b16cc7c57ddfb3e4f6b01ad6239982baa07c56c05827e838c1b4bc99f9cc40608e74ed2d123757aca9d8030a0857ee2676db47bbcb1e10badb32508b87aac4c066fc747ad09a52177b378fc1446ea5aefcc30b0d744d2240e5e94c6f12254945223aa93abd8e71fe926a4fafa2a49273d618a0a5921cbde9c6f9648c6c12bad96d080e39ba128464d8f496b7cb020ebb03fbb2850a7118a7edb1bdc438565ca33850c1b1bfa6be29b88bcbcbb3e6675924550a7427035f60000841603c2b4c9f22040f9205c9386cd1b457046b4fb1521e4fcc47c1a0e7fe072bda26946762167d8bddba8c6d04470a2705fc05a6b00c4cc54409499a4859c4148b2a7596c8c7b2e597f0912742794495491117fec96486035f270363fb88511f756238ac9faf98251ecc06e1495337529b209031c0008e4250f550c3d476352ab82c8ef41c4b8203caab3b81335613016cb71b6a1f2c9b71158526cda75d9057c7597099789782b05164d338593b0a9b5ec85e0e6263c6a54d5a06ab4caa6c8db5b40e099f0ec7c00628373c3189e6c129b76827d160783f183ee14151b3b92e72bc4c65a06296a88b9f75948a18d50f53381f59360a19daba36939c3af104362d725c62f51b72ba1c8526c0be6a36930e19de18c2b1e470136cb7f92d246dc45992879b3762c92da6b97c10a552ff7a8b56788985814d2f9c5cd316dde3b2c7329b42f7492917c9174552219719575196844144a04a0b6718158cefc7833a421016b5193a5b965eb7b689698d14a41c03a408f8713aa46a077eac06a6106796c64b67117acd1bc0220125f4408222159503864eaa8824626c5651959d0f4c250c0002ec513c0817a47927ed99467c1eb6091f91773495d70084a7c344f41e0967925734ad846d360bc2a73c96f754b065112f1f472fcfb331eb8a286bc69cc1486d58b2d4932086f40c90ec601035c3016985962da0ca3571f5f36791a466861527a1ea52dc5a6254303971ce841d165985e2c02ec5b6a92278106117fcb377ad2c6c48bb24899a519626c74da9a3b026623417156aeebadabd418a0a8bc0bec5b43316ba7d7c4145016ca515ae19932a50819ce609b9ee9997c29a9af03a05ae9aaa89aa03b4ac5ca887b7b05a14d283a42da27ed7187369b0108165ef403550c99cad5c3cf7e28bef8a83ac8867341b331c9c02176520e0555af9b8047b3753e1928c849a13900545ba7a5c16bb9b6c689102aeb73eac0c5aa093a1f92810472c29642cd2a549a32bb9029961f6c4a20876ba8f4ab5212539f543c9d247355a300467b5a0a9d130613549d17a185fd045495f06820684c86aaa18a89317ea34eb0923d5600146497729fca9a66e9a544a55c1aa6841c556cdfe7ac0959635281c54e044c025c5b466442f15655474928c617a646c7178bf5b679062ceada6c6d702c22d339e0d3a9563a252e36287fc7975725bbc1a68122f4579a34c9c84318b13a76254c6be35a1ac3b26a8c2b373c6378cc20a7de414924a38ae7e8423fa1a66367a14b198f9980aeef068f346b208aecb13d827b3b5ac088878548171451109ce1535eb0a18ed1c1c677f9ca7f60501e1986ac19764849633c408d476540d6290738633a2e711eddc883ecb5111ce01bdbaa3df0f381facb31389249e261786f79aab0a80992b9a74002c9a7432fe88243f4276599389ce8119b846a75dcaa8eb300a7cfe266bbcb3742bc1e4dca77b986be341a03a75644dda25805bc50818a05a8495fb351c0709a5c37a07759dc0c3a253a3c56740aa8095d402bc65554880c2919dc6375451be6186d18da30c2f35ee4f1abfdbc594ea6ac5799c1d9912fb173044ad995d675751294489be7674d84181f4aaeacd9951dd0be79b919e585560d0b090b750f2f667e2ea21e283577e3aa4f6b11ad2560212f8309fad233ef87c6fa37480217a7b3933147daa29d2642cd582a3ac96ce5026135d5376a586f4604a8d511bcf5d09dd3e895fc3cb7d90a2535a1c31da1b1df5562e1b2a86a116212ab10a6328d2b80921c3c04ca9a4a9424bcc3a75e649ab34481561eb0a0920b71c245c1789770df5a7fc9136d4b573b227614dee4b23276af4b6c3537bcca67b59afa0119e668c910060e04e7c94a1a7fe0e191fe22cc727d12dc6d000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: d4952da07911c8ceb643e6b3254f7fcc22242a88df735c9aa9a91fc692f32544b7f30fefed3311dc8a927930c50b17577573f858b778294929b123b180498c22c1ddc92a11cda9c0da3cf300664feda28bff6f1873a682451d24e2c2a5991fa8aa29718a43c2b379ebc7387fad5dc9e3681d233641d1b805b167ae52631b3b6ebb0aaaa6507d4a87a808a1c3b62c97da49c02dfa2c729693de194a1bb1643fff14e0fd8d3749ad33936e8b4f8f6f3106c08a8098c6b903d1cb70c2636571253564fb7dbe54b96b1f999749d0c81c698934756b455bc6ec918ec267b5e54a0a812c62de971d8ccd93e4c1d6752afe3d5308c5257abed2b1c01d0489bc1d5fb5b2f4b199cfec784b2bf92dc85904cf78a9a6c0fc3a9c5c1640f905fb8fee2e08b3c0d5fa029062a5d41c82c512ab0645e7a1d728e7fdbcd95ec59d121fe876b1e6d624dba73cf68f35b23bfff7a435a5afc81947587b60d588c54ba0c999242830e568c3269bc96e001a99edb6ccef086abec634d0febbbaf72d872eae8c5606e86d9bbe279395c5370647f245351ae41358cc26f5447c37f959396dbb03e484c80dfcfdf93701e849e081232e85eb15e034b5421dc63c62190ea54a83ae06c89f395f7cef8eaa41517345a3a0aae4705529d3c2c13f71418817287c860f062c6d0c5ee918c50e613164dfd241533dd08928fc695f3b3c45cd75c740f76f6a896cceaafc9afd64deb69db89cdbd589fd6987b1f5da8b5b9115d675d3ab6cabcd0f793f00418c97b673fa31b851c1209140f76492359f3580c0e4de09d2a3efb2b3dd4afd4abde0e97180b7b24a45063f07f82771991fd2da92e12de7a868e6e84dca6a318dd8ef3a1ae6420d63051306d0582b058b7a96f25766aa0d863059483e9c7a17748a268e896f0d02173606e4381b639b480fbf0b3541a7c1790e66810e064cdc9d4e176cadf3d64ac27648467cd0b8643ad1255347cb6b086788f6c4dcfb3363cfef54c3ba5c13562ce884b53b09e6f149a60e1fbb35b65261406ec04f4146b2de7c61c2fdcf0f714981308774af933b710d1d4f315feefa97a581a98dd083a4d31749e5d0af2ccc2109cb739f8bfe85e4e7844dc3907959ff3c04ab9edebf3317f354c5e0aabe4de2e0711ee771b8dd70a3008eb9936f8b6924ec0dc9897a801e00f6738ec7f31cef0db9608d2c3d3683e97befb02f0ecff93068a46e57c97201608756dc45ca8bad93e0f562f5d74790c87d4ffaa67613b89c22339115d7499a2fd038bc4533e46bfb5eef28b06b8fe9a3182c6a8b18286edd1b57adeb55bacebf7c842d527ff5024c0ffabbf78eeb956a5127555894ca8459d99df31fc0fd1e1c5f7050d2cfb427dbb2f67530e049e23f8310b88c39d25dacbd6c7dccb9e382b0b471980d54974adcdb082825a9d6325cbaf90030a58193d5ef0a4e1e8fc885f04329253408b4de1d25acd097ff10e0afb4ff344063edde277e49b18996cfa57a7617b395a54731052a95a3cced450d38a31f19811ba278c60097aa1e3c91e87c57486b23ccb07d687c48fbaef4e814f9500b1e6f679a749614c86197239936be1f7ad2290b9a421c4f2fdbd4178a75cbb9cb1f7eddaad9d369f79c0e383fc9ccbbfd5e4cb93b211c477cac2786395e92385a4c0815d0ff6849e961395eba07c86e698d5f62466492efdbc326ff7c955840ed2877919d1cf95cdf5f557ad069363caa905c97471c85c5d0e65cea1ca90df82a0f8ef5660f68191c1aa19a180d18ef4a7b0dde8250ff3ff0a97dd4d65c3faf1e3a426f6c4b64f1f2d65ce9c5e5921ac20197a00f2331e810acf4f6b71878f1b785a28970d844ab4b6d1a604824db09f15e96bb711389114a4680b1c8b19be73aa5b039116c7a7cb7d2c2b026f5847afd6d2ac804f4ca24554f5ab27db900a159579efd23d78cf5542a038744cd6bdd64a3b59d233b878b383bc0ef38a0a2a8ab60869b64634df1cfdf3b53a367d3bfbbfb741badc819cb01823a8e8e16f6b4a35c380f99cd45af0edabf9de4fe2e5b0e6c34f7dce2c8d9a4be2b2b8951c27080aa965ae3afc422ddbefe0da8f766c8c63823050d1ba055e42352d305385ab932f99c0309dfa8d6362ec1c07e33909ac63200787f5963653db6ba2994cf308c9763a153b6ba824fb8ee94bd6a38f2a12047f7e0b01d090aaa41b4acce8396c18aece73cce364a7e6d9d
shared_secret: bd452a700448a4542a31dcddcd0bf285610aca6570d8bc85e20e163a13db5663
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780
public_key = f6036a8efa3d74327dac2417e6fb05e2f1c178023b70214296c3ce65151248533f43a4b50826b181bcb51fbc54279397a6e50113635faca0cf7439be90867a4c548a9af0704da13d12c7549ebcbe5b279afc266fd83b9c4222b717b86fd4724cd0a35238abc2c3390695ab975bd38e0681b67bf86f36cc91af700277998ad3d700e6419105dbc952144561137711a0acaad546e76c66ab5722bae1cc110abdff7044b662beb6acac276317a7799f7ec6bc1282c87cb284006b3e74c361e5c6c8b899ad122880a1219102404fad458170f8aa3576750a9682c830c7c8796daef63042f3607c5c059ff98b7a093ebda2947b861f497202510a6a2cdbad3d7ba3b8da61f02671be3410549aaa9c3140635334f6b4385cf4105ce791db08b73f3ccebac9ad93f1c7abf6289721568d601c2cf5ae2e4690ae0c77b66134f3e1c33bf82771491da4d228ebbb7077312babb47e1262009457a3caf60f0e47145e29a3ec3b37a67b9b418625142937278c50344c05a0a606fe43c229749415064556a55dac28321be77a256637fe2b8dedbcbb02a29ae505c641b004f970b051e028d047cd152477db673875148b71434a80221166698c3cc589374634c06110320b0f249a3ec4856ffeb478979533be7a333eb144550939b00164b6b1b545905612dc24775ac2e4bbb531c6763f934121a8a8d804951b05c8f9c9237046245b422272288e333970f7469a78d543132055c8781ee308382398a7bff70f62b7357bb8093624a3ebe3169e957f3a33019fb0296ea1cebbb484e87b04eec76a3e29cb38b451816a8feba195dfe79e820591d7e73c50139e2beb847ef43e42ecad64b533ee3857dcb35413066c7eb19e8c1bcc42c9959c13ccc4bab6ac81b44346261ebc74af482e34f855e08916e0c1bf33861fb6d706c3a5c03bc62c6d97cba4174b2441a32ce47db7b8703452bc4693be69a4c539c6a6b744211598cb644209e84a711a05b9116574c7a222bf459305f10a68d4c48eb72ea16526ff7619e8391032685e244693ec24b30a257511e00ada5a69b6cb75c2983d53157fbd708fa1e54057757bfe6067d242cee6492a51098913a6b2bf888ccb280dd3cc48c6a95ceaa5a844338cf4985978929e9ed153819b97dbb944e18c0d7530a09cd420aa7ac5f5910325d02368c602d531289db188d30c6fba407f32c41e80133cea869b52e8091f701c3d7a7d4b317e9b0291f05a652165695130c6cb783b18ab1ffeba0f72d2c21cd9844f8ac2826267081a4315927d9ab6123fdb0193f723a3cc3738794f735b1a145b83189b71c597bd8248ba511b9463b9262c80790a09167720473fb77b1da2af8632ad793c10d1916868b99d2d23a06875769d7151c9a524aad51eb4f20bc58b4c572cab2642769fe444362533a04c7350b3c5eb418785e13e05b5459ca2c856b1b4e1b266e9677a27d29f6dca61a2776c92dc9290c04d77d7bc7cfaa8a31a581a623cd1c046a488080ffa8c13f66f4d262aba53cfcad64313c5c2fd838f88e903fd3c7da0942fbb3c84f4581457252e8248a75e185d4b5b64e0634b2ec5c5a088a6251c9c8c76837c95c066a565f9fcaf0cc76a79e1a20fb05a5bc1bcdef32deae76105c581319bad317b7991d062ba1761cf1accc2b969ece35274d7b6a3c8c79142c43b14772ad96fe2f296eca5c9aa4b68cf14c584792b1e4ba1132aab4de7788dd642e307a6b2476caaca69a1f7a3946404a440764e4446c20c216da5965c88bb9e09c165b93845c68a5674105884c46c601d35737649815de052cabbb31b39f95531286e08e64772213280ba64b6467d03ec43c5911854498656a831a366cbc256813d451153a3610e6979671ba7bb7ba41dc832a81885589974f8ebc2e57a1709eab2ae9931a09bc97d486839d6a16b29b7de642aaf1861c31b6ebe82891896b4e75b2360a776678aab892b81c5e2175eb588885b980ca02e9ae7bde1dc6346a13a5964c4391b4a3cc776d9311f0a9706c2c04584d05b58624906417eabc95738407ba197b2a14c6e4655396575b585f7c2a8b262cfc7c7d6f3a1fcbbb4356195b502ca7b278133614379176f3f4aaa49a040c7672cfada79ed5a2400dab4d050560d8a30c3e57ec6411988e941622c64b934833f9225daf42885a5b1f7909d65b5000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 021a27d9ee3c76b205152ced9c68003eedb09245954d50316a14a3e1d877bd9d6480d479265cf7a693e77b8761f11a09c1c30d2fa5f50497ae6a4d2afa3e61b0b7fb4b3504024763ac6c10fc2e6bc77dda7fd837ce115b84b1d0c749e8e4a961d3e7de1bf6b36741be282f9df710b46410df07191c3207dd9e74e8c4d43e3c75607966a1894e86caa95cba51a9c3289b00ad0fe59c034099b822654caec138a1b06635d1de59fd469ca3e928deb7873cc3dc2fe03aa4b5729f91b940f01ce83ae5aedac13d0a961cd9420584346346955780974ef21ccbe3208cb019f050fac0b80076b48ac6c0f3c2aa2dc3a13b914ce5343c7a140186728bb335a47515d361466c2d78f3fc6250f13a4d4fe6c8a587512700fd5272c9de73eb698045708e18b86d6b6692e3afa1b73e5ed55614dce4b8e71ba9dab03a246b1469c617f5bbf3e502632b060c7c17145ba7df290ec310661480de58a56cdab7a2e5a8e298746eb1b7b8703c5c650456c567056451e209148059a59af315540e448c0c6a7f48df9e22f373aca8be4df3bc9bda80e94a92634a612afdbfced39194e124c07748328698cc21f39de459b4cb08c6c73e80fcb6d0d86adbea470a207b0575f180ddc0d658d7ae66b2166cdecdee265a02e56bc4880797f0fe09c081788f5bb507db2406f37a2743a3c22ee0caa51ab62ceccaeaa9e189ae412f8dece857b0faaf61f81f2bd968d0f6c9048fca287f74d954e48ecf05806a695d06bfc66ed8b5297899dd4b3942424cec559c33ef0da1ca083e7eea98585f89003ae0ba98fb3f51becb80094ba0091f97b3a32c635a12308851e070f4a94502be51fc6f4e11bb7803cfbee43135c82bdd3bc82d58383636eee387d2c13c1866982d7c4f15f0be3bf5f87c8fa5d43daba703c73135ff3aafe4cec43abf9c1bcd16e56d6df85fc38dca4d09245677ed75b585722a9b20fd5ffe9d0436b3fb592ca6982ec2b96a8af589296b0b0ffcae14ec9027d4815bb9b933470a357d0afe5aba5010eb0d93a0fab2c28f84d7091e607505ecada258a551238a2ff68621bdf5ee1246c27d6e8673f1b785f7abc9b88310e3c1ca5e266f2c974d1c88a31e27a102330f924fb3713adccfd09c4415c1773c8da37e4e18ef274b00d462970873b54ad108f588c8bee6a7b4cce157109aa04ba0daefc9b5119b3ff9f70d4728574cb9f57573f41760248a8a8cdbbf7492083cfbf585c844f03ee2e08da4a08d04717b6244b63bbf80d0f4f0477f94de7ae6b2883388ba05b27ffe8a497541f012f16bd9ec50f64cd0d14e1a6c2be8c77ffd39d1d19ef402b46c0c41718ac406acb1b71fc044b1f93a4fe98fa8a0bbf09caf9dcfcbd8e8ecba42e4bbac9bb5de40f089b86ef71003b92a3fe385bfe603b098185d05f43819f8686b4f4e14a75463f2026baa66789edc52610ca8d3d5b11f10672c70c80effd7ba0352b2079de6910221ed21c487a7367cff076e84e1cd3ec625065d7a9b8ce4eed9d91c8a72b16a4a50d96b8a00921695a00167b53471e79aa445c656fc0d41da64d836ac21a34be767c514d1571e500fcea435d1a1d59a6d07140ee4d1a4014cfa8a6f0be9c334ebdea053c842a06124dfd165232c1a2ce63babadd8a56fd78ffbed64b63bac3b49e5af81c746253bcfdfd045deec785e0e272ef8c7151bcefdad6fa2bea962d621abd97f9b5cbf1eab792139d16b51e1f732326a5e02926817ed0bc4c6c4680e42e7d5847d6e0195c402e59290ce8a8f040a70980eac1a0bcd3867ddc0f2de9b204514011491c8dd63a371d331b2edb870e76e7ec5b27146a0097b969a6b157d00f66ce53b71598b71869063b9a29b23f3623837385571962ac29ac868301e2ec0643bf639b074c8a28f0a66acbd0ad77e5c86d01cabd8fddd77a4fce6185768566a6d98e679986aaf9978c49189a2ef1a218977f4d2c34c5027188d816cc918061ad13421be77fb910ee5aef5e159fb74169d7763b446e523470409c4fc4e76aa6d98f120013d4af284bb0a8e9eecff71b8544f9d3815062173ad6d4e9c4727cd6395bd3da54237501c73390cc5c48683d780efec478d2a15a40a5ffa3455f52c092993859fc8ff9c1ebb308ed03b5b88f6de341c3be3ddc96f695d68c1562b85806e162f1b07c5f10a1213f8d85f6b7d92e06d664cda2ddba47b93e2922d30c3bb110405fc7dd9213812
shared_secret: 8d99392e447dbb7f7eefd329325bd71d1d984cfb01fd609c3283a84fdd0f0138
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717
public_key = 2970cafb137f0e7c060db72de03a46d8a860b0cb2a45b462e5530eb566bcddda2315a633ae5054957cb74df537c30777a547b0c6e486787c74c3d242ee34158b212f4fe4107885b2d3da2224803e73bb282cdc8ca0365eb70751c3263531b31dae5a29561316003b2d781790cdc2ca09b65ed19995765263f06c8a1f3378d46c19b1b46a43932952a37e4c828e99f95404075b013b7471070422fc65f9c9965a1c0cd0141472fc7004f6319b548c19929f792ca0d588208ba4628cf2bbf7377ddac05a058308b7fb92cf55584a381204523a460310bba06a88d4b69cf62fe2a71097461a8c3b5eb212337887a34fcb278c59931f28a0000227d9cb9b1b3753dafa63e893c9783764bd01b7f668b83cea1e7fd94913a405babb301ffb6b57b2845cb7cd929c0acc7540e1bcb196679380822c7bb67f732a3c9ca778b60451fb03755ba151e6b0bacd1129df5174ebca123805beb8e91b840b70643713272ccbcc2b80008a46b3a818ccfa6ece2c3364f373fc8c10ef4b4c95955052f99202362bc3020cc2528486784784095fbe10b4a44732a2c6c0b2b50d199a93c544a00980baa2f5cbcc6a3456eab71c2798d04c9a85827b8b654c962b7e4125cfc0f82a59632462d656b9b96188cc89373a6165c287bc890d5ed9500ed08ec1f2822d718bb94525ce81cb48b4999e288b5c90bb7e3647ab26a7f5479199f9198fc950948605b9aa0c8d0b133851abe4d77aed7455b70410b54a00bdaa166f0b4712e3916a70846840c8f3f9c80c8a95c912bfef188782974eb372795d96cccfb6c9209cc2cbec64bcd064e238608ea46f841ac02d6aba8ba9bb251a381777b50570a5c79257a964190e56aba3b27c708803a2e6909a6920f546c509a7524d138a9c2c839f34a6a814b10ba4642b7214e447844d553532804154b36f688715b203cd576274445c98abc60192f603d970c988b42d6cc250b4349f2d91b50c123875c608c932a7f85bae2cd54b6de80be13914f2606cdd9b03ed83219ae5623748972a657e0ccc41579b745b3abf6b04b50b945f2f2963504bae804a261254ceedb767e252c64908abeb94669a94cf511b992c475d99939095ab9b19f74f75d30efd58beec598352108e1ca648b5f31bc7071c86aa97c5fcb60bba8884a3c72414916bf68a277a82b78857de531611ab7c7a111a632a64704458dac97dee2442b4b05a378baa74f34154bc8c191591eb2196a4d3174c3848b5f02f2351211f605b2608c9fd8a101b658599b87c65a3c2c7a266c02b3b8beab84feb0071c25a50b23ec8acb1daa290cca2ad6fbc8280c5cadac42993c083a25338150231cd134548661d645c678bcbc0e7815da41a14e8eb123c482e2831a1ab0399ce02cfa1a39a41c714bd8c9206d6c8c922043a235cae2bb6dd1ac430e22947444ded7447e00a51c13308365aaaf4da9dec03495c73295aa9259d4529eafb67dce58b374066796983f06c91d034226aa75afed116c886927e135564e4000cd86016346b56d9864c7abc6211a72cdbcd32fa869cab01f1da8f6bcb84cf1441781c6baa263ea684cf96a1277e2459ea07c6071b06093985b047b791ab6e6593be230099308a79376bbbcd71492a4a4de83a4d70c290aa05b74a8c80fdfb9293317d10e07615acc85d762ae35b187c55060c912d9a2a09e995afeadb874a5526cef75fa4701e9e0a5c082b92ed3b8887f0bcca362b492369881373ab878d00054027c4cef0c07cae57b30fc51e744653316591b5845c0a47492378764769cf3846b263ca6e086835cf0197b5025b2a960097e57597327f28d4b2fbc6bb241863a2c96d3242a031171042fb40afe8a75cc2976903a603b96019f4c7420b77625470b62287e03239e5008c1297888f5322937457b9467e52937996157e50764537ca495ac75fbff53dc1e8cb77002aa7988604b0829976c8e49649f7446495a7548227ce61d963da3bbd2705a8dfc73f091c20e72b77f6640a14aaa30134a1b3fa7083a50cbc720bc9a802a4208568e2a2ab065db245628ef2a138ca1d71fb3f66d6a8aee513f1c80b64a0bf38f01f4979a975054dfca823c4165aeb1876a7a81fd6920974b516d6b3a1aa71776a264a32447240855b84ba0fa1d35f07a8c11361040da933c4c44e88417b585c1a1605c68ce4000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 6899d650581d8ddd73d6e7095d24e2962ac573877204768c66a78047649ffd373d4e0cac20e0b98675e6f50962871c33957b5a7ba2af2ab800ad728c2d0e70877cc3f459ba53d432d45f4c9ff4c951c35f14185e01a1fbd735fc3ed84063b579e69c230f41af67c9cd7481fea81ed64bf248c63f56f81115ad8255a172fc99d87d8fdd6db00ee407618c7877a2486b6fac3b8eb7bea62c24bb5c5655e47388f2108ac36d5e55c5511d72bbba65706ffdf297cd0788b4c34ead564e86e78c605359b6b344380a4ec73a4f64b7866a2eaf36a494c76adba39158a3d1d3b41973cad055780ce211982fee596ba61e5e5f7e44cdd8b1d6f866c708d20403760b9fd4abf31a0573afa130aab5bf7493b2365ef5437b7824366fb3ec967016e2da547eb61276be7c5509c2bd5e16d8812c034f6b4c5a7f5f489137385ad5697c4312042303a5d7f62e398bf5fcc758ec1475e7ba671c656911bcc32ddedfdb07252ecd0eeea696046e3fc9e564b2ffca11562191c4a1e4b31d9494961fb66ad44f24c4b0d8d7422df106663600ba380baf53007b6146c923412228936d7324a87050e62b185bf3700959e262fc64bc4f2b55402d57c63539c57272240f4725ea23d389b17d6af64e864ce3429c9c0514c9b384d79b830a9c6fe12f8781755d53b8af9bf81e4784d9780ba6ba0ae36f89a99289307481bb3955075057648129349f1e0ce4e750be53372f82c92230127280f0f393150c89715a43eaac8abf538a031155661b489b066e915505d59ba40cc0b5a4b8de7e731533fd06dda44e65f22b7931c4b8e34a72331d32798aee1c16d81e06eeef892e7858ed2e9c27d21a3030567e40a369e21c925a26712e1ad6344474bf8e9539027040eb4b0cf65b627623ddf81253c6cf002f837673d2389cd296f9abfcd38a36c6976b03432c9100c7ce9bc862d2c98a6dc2f931f62e471369bbfab644f8ae37deb65784e6f5414bf88cba9e6836d3fa3c0ab7ceddd81d31e94c612224270fe79048688b6d8d46acc7d656a647888a469fdfb6ef8c8daf78a2270c5058e9b87d2fc0e4f8a098c1cebf96e06ff1edb382e545387b2314b2f7d4a669dff20122a0165c285258a39e2a1d27c5eac3d79ce0cdc64dff98a8633882db588a34b93a1403f6a739bd056cd2d6531af36a2701acf47617024cd1cd4b9b60a02cdfcc6f34e4693eba3bfb32780c573b4482a5f6bf109c7ee51792252dc119a5e41a4ea8f25557b64e500a83a6d8a839c456775a9ccb906a733391605bc487bbd6ea7272325df31cce2093649fa8a379f4977801240ea2be8b1e6a5ac95ba613bb2798bfd1cedfc34c39e1c43cc094f8bff34607f8419bc3ef2fc0c37075dc49280656304d2f642c5ffe86d5cdea4fe96cc8b4451954e5d898f6cdf7e7ec5af447dbda66a254b964df9e8dd565d46cdf04dd2d19ea1c7400925be2105e45343baa9855c5236dd70e042d0153c904d30fe45d087b0f0863ec603ad74baf1836b18c91d98455f3e6477936dba7379a6072744be6d4c64bca89ac3334ba727e0763f0ea52faff3daa52de9fad1f27e566e7a6e85914a02bdec5f7a8509f80a616f6ed66848d4ce8920757fb7611ee7c70366ce847fcb62a94452dd2523daa21c759f36cd31337afe1a5c8e8ce8799c6f03873f58bac3649e0d0fe6adea0199ef6eed64dd1e2fe0bc606b97ec8ed1e0b567baec2816273b7280ac91b05fb25e7467e934bf79025f5b4060a813c221291cb307f7783d5877987124ecab1d9d8c8e36c10608871a92e8878220f593cbd4ba61c35d2805500cdc0b145cd6ad2cd614481edbc913733e3a5104b0006dd26e871df58f32047701b2420d93bdc2d0a2474f7d9927e7f196993d9792e30cdff67ae89bc6a27236a6f0ce0439d4b04788765943c2be5c9fbc0f139135ded84ce79d876eeb37f30371194c8eba42659c185a10c8941f9fe9fcc722183ba7e22a7885a66d8cd10f214f4534171e0836d86368cd04d87737923da8801166afb398bb345b5bee89eb512cbae07f192aa50a932a5d92e909e65443f4004fca49de5eb19abedbf57d066d134e096e7c63defe4430f8e1886bdd3cfb8077f7196584398589ced5670c7be91d715a20f51603db8ef35724805eb1c270cf16b282ce7c79111e4577a0a1a27a435c070d6b3e89dce1bdb53826fe9a05d86e586ecd950d27247ceec6d
shared_secret: 71e358b21b3b98d915b70e9b877e94159aabe9df32737c71c50c2f99d7a074e3
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59
public_key = 46e77cf311b99822a8fde459d7d01210db0ce68054199939e8156f8f7c33adf5bd5f2c54c6bc70054a5b8e305d526c1322e49f57c47264091e39eb0c72a596ad5575434c4de07c0bbac32f7ed30a0930221bba0aa75140b0c97a6e1775e1211740c23390f0094d144632169e4a0c2534479b85546a7fa65694610b2fc19488a5833aa7bd0ecbc6dee36997a900fad18b1c13b7cd381b1ca598038c2a4e40ac374615ffab46b3cc992df777eb0781aec573783b75cb426283ea01bdcbbdf8f8b30ce92f46cc7d4ce407bacbab2bfa27fd7792f43ac0ba74b58b332bb915be649a573eb22c12b6037b4a8cc109cb4495a337e42ac82c48dac2099684bd01700b7da007dd8039bd6b09900776cc783ca114358ada02cf5443c9bc6c181a6c86daa79371bf6e6c5cb68b7255d592796bb7b38c5f8c655b2e480cec127a2dd4aae4b23c44d4367de78e74797b64b0ce07a36e73613ddee8a61c5c32f865119f1a60b44ab5a28374af3324e68604bfb33962fc1f06d661119c0a081c45dea91190c4cad6b6253ce560d4e7855a64c58bc950bac88ce61b76691a93be4b81c202768c984ba2d9122cab4880942c40d87022b91c5ad817dcb5037b835dffd916a2b35c09f782ecb72cf63239b6c33bd73c0efd115357b283bd6512c1eb3ede4730284328a86021fa805ddc55c96c1caa3832857cacbeb5353453638ee70669c4dcb6a10c723b18c71dfc44fb5600c0f8cbb35c6d0b075335f6bec7ba1306766591575b5d2b4eba76a84e326b1475b5ece6c3ccea5e555616d38c03fe630c3ce56d3ad73858539d1718b915fa703996ce39745831b3c93e4829cc5677e5a79d3b1794f81816dcc2c5babc859b0966c76c23a4e66f1031634c93b8a51550d7850d5407b4e2d00ddfb5862c1c570b778042986f66ec940c5039dddba773c9a6a3c10e370714d0a4a43300a7b06b01aea6b6a4b5c17e7482d59bb9e1fb16897cc0340c5b65b9239d973c06d41f6e7b9f351a22b8eba6ac1148d91bb4f8959395e6a6ab996fc79bc8f0f7309be14fdb65bfb0287771908244033a3975ce2ec096abb9c15fb40d33a074fa2c84bdf7b1ee94746c42044be55484a179ec5c7edfecce56f9845f29c7c535282759c2d0a2546a13bf56dccc6d4463376a46ed05ba7f54577f26c78e2aaefb0928c36820db23a999e4b399b9b4fc864444d665e58ab24577533aca26acc5c512970c3a84bdd6fa7c7fca6c60eb73a1ab79db779c208c61a2f5311a694dcb7ba37ef7c7db92587d4a77fe3665036531d12c1adcd29cd2ab733e1b2d3ca56a2c7c9f7e3b96d6355b73c4bc4061ce276308b449cc0660b0f9c30fa4a62005f836e182a77e0b74d2b86e3bb6a63fb58d362b9496025bc5485a086808d3779ee28038d1939c5e39b645db160059a04e1b8e0e532686f29d34467fedb02236f3bb0b699c68726961f49824d277c8495c9d804a61f5320e61bc57a85bef199700d18a69e25331c41646abc434e6033d4abb30f114c35377365c51f5173769c315edf076e58710449763af61cc316b5a3e75346bba705db322cc683d5258a249a22524db0e88059a423c9b55d173eca88ed47cc4711a2ae295b846fb113834ab688bc2a42435258b9b1be648c5889230dc153273903e06aa2590ba5d77a63a16853d304933157288e03af785bbce36067c296a18cca79a18aefa33855683becd7b19b3890de40a24d6d389460a4a66378da2b82980e61ff0b144bfd64d0ce294e9816b9105c20c2076ddaa1026c68e50982cf79ba879f630d4eb8df663390307902207950b8b9db571c306a033272ac8976133a641c585d43e730a4969d752072bc6f180180e0ca0fd9c27d7845be15cbdbdd44c7c525fd70b5479c18a24800833c9338a5635034704db0443307c616209ab2172a0bc42c239d87ced11779625315ec168c3716ae62a209ed7096ecb83d7939593e519fff06e99a6a09122c5bf20c5bdc09af2402a3a605318d68c2b31a284b33b1719a4b6c7a5fbe4500ce23f7d858456f47d135a8256c9b40f52c37d07c728da600f127738c027d131b19b0070cbf9322d1865fa515471d461d17c424626b305d68e34838d5d7a35fb91816b65a1f9403771fc3a8f22403ca8616f89995b52425d618a63a789a0dcbb9ac196bd6612fb69000000000000000000000000000000000000000000000000000000
result: pass
+10 -10
View File
@@ -1768,61 +1768,61 @@ ciphertext: bb7e0dca6eca3ef57e945d921c2f80875556f7786d6bcca1312f86b3bea6d0f0a73f
result: pass
shared_secret: 5b357f714a293b6724c0dc2e2c5509676782a9dddb050d88e6efa0a6d09d20b7
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: 00208080e8b3938b09aab715a0b7a09314c3d2aa03e900528a209c655886bf0180a0775a1ee133e543c17d7c24407131f0b813a9287c5c9939d43ba2c1f064015c1babc910d1024bfb46a3fbb1ae13dc5d8bb4576787a592495786a53d4c172cbd3b2cac6a2f5ab68fcfeb2a67a997d809800615c043e4bcc0985de9d671e6e0c8b071a20264c457c13b1f4734f234142e86c23170821d068210b29358694d8ff27e89c59264a315b6591d97d90ede633b68fbc36ca96b823a4bc66144b541cc118b0d60a66c89124d9080ae30f44b9f4793cfac65ab8b8cd65ac81cd95de566ca2c19906a955a04047052a699e8a132e2e48aab916278c49ccd1ca0076b5254784a23f7a8c164229bdb9b46e1c7bd4c74639053cad5226c598918687fbc50323f086238366c4ad9172346626b54ce142053de67ce8867cf599587d0a47aff0a7fc113140c18c40bb31e2340822cac294aeb3a02652b424ac9f1008a592ccf70170246e689edeab03dc0249ba59fcc6477fb668038443bf9a743255310df11b4c90a97bd212a74d5142bc6461a135ce7376995372a1bf919e3db20f22c683f488395a95e31ab13aa707c59f22e85d892830bb550395633f6c87df28401865106b5cffb75729391767522ac236072250c6f4dda196a90bbdfa183113c5fe2e31ba1187b4f682399f3c6c0288977904ab445c0c1b9caca030aa639b35029657c1608e3a654cbc39f8f096414d278059a6f56c8c838b1879b00ceff668190213eb15184a57706bd8c9111667f52a656d161bcb5e7cb8ef5beb6756371ba4297397eb6d0c850aac1e01025001b71a874a25e3ac16450228dc33691b3112de319f69ac29f2a1cdf02a0cd77319931003910331a6268f42669f4a90e79bb820e5c98aa252dcbd056318a050ab71f5d60028fc41594688cea4a95b32529c39c582ae828016644faf4b7b1fa6fd9c305807c43dbba54d44273669bcf956c197ea3462a30be3aabb1a6654dc4a72bbae53982ebb986e249d9438d66b65fa15b723267ce1fc1200bc26656d7c4e1839e02927a96304460a34a9c0a22ccf15c7390afed4a612ef236f9d00c22d04cc1dc362c08afd0a16536985f69f6a15d6585c410ac7a39599c683b9e67a33ee299a5000c7e4acde611bd6c817b1aeb1373835a245b916620be6ce8093f88635cfb619a963c99785cc5c354e5d025f954071e380876408fc5ac7fbbeb4c532b1f1be67ebfacac4cf907be9485c6da8da380809ee102af0c98beebb088c13d29830e7fca4dab8c1e8cc87a3b4198c50686c82626c41414d50878f403c10ac905f39a901405b93366a575338ed7d66c0a27c9dbc4af2d217688dc3909db8878000af307a989234174363f3cc35c25a42d7361ccadeca25a484a01967be2a65bf4998d57943759528d54e498ab18514a5665b87c98339c3fc01baaa2953abc1aba78778b26d54bdb2ab69dd705d6953dea404adf8c82d29b932e144f48a2661dc2129e6a2a1bc5242552374a504e0d135e6cfc9fb91a492e443c608c6e5342361aa8205ac744ecf974b667a6528938b6085492298e97ea827d5a4274ca359a1811c71a574dc986f4262b2e29256c4b52c9a22c3f168988cccad7dab73b47cd1ca43c7e036d41c94f8f31a0de404fa38a1da0992933d752acc0407234883488a581e340bf5a8dd7112099259ebfdb0cb094c8d592485f25729e1844870a3d57d63fe9c1295fc2c4a374508f359a7e9b062348c6c807322f1a2dc887a20ff1b8e951b103698492504dd86babc01339f5b0c9bdb01b65514c8df3a61abb7941da84b8005648fa0e5b094e54e56a56e8c840371349820dc3f48ef0fa488f180f57b5c0ad663512467836d6765f6517ebd0172d886430357baec25c709b3abb9c01dda27e2ac7c17cac7511726a39050fe92399e14780e3288ae775612b2c4baaa032af561d0356c43175c6263c5d9cbc62f57194c9f76fb5293e86d9a95a641325013dee98067d513525eb5d2f7cb5783915d0917faee635bcdab95a61592fdb1de202c439dba37a235e3888134249044519732701111385b9c91c2fc96b039d6483c6d1bba2223cb0f612c3f7c6dc62bf64a04b349a0fab73290acbb15ce1cfaa15c68d896493e67dd9a518782b35fe141a4d70bf33e97a616c51193b711b04a40c9634bb62726f748572155667146d311016880c670067c653e9a8dc0bc32865adbf41ba99f19b2dd9ac7998bfc8679c689a05a5038042885742a68ef84c429984588995a6cee077c3a099caa7a5d3761cb4411d1dab8fe7258c75903ef515b6b0629ff659436ff687e6625d2080671e0cbe0cb624bf8b367e780452ea3713804e083aa6e0c7adc15618cf223b3587a364320d56c58be8f037f89cae0be209ded78cbae29ed73767ede6793f0051cd5692f63661a257ccd9d859a92ac08784070bfa7ede4577e7ab1ff6c7b159089b8dbcc5ba56357b2659a7a04c8748a86991b2b775c2015a4c12341ebb419e1244396c233c161495366104b8e29979e571c9614fe10c868db56cd934c5b2d04986a70be8dc25d61cb6f0054d5e4000ef72557b712658d962b1e673a07222d59bcbc4e8339bb5b37cc1c2bbd38780f8233843ad420782b4951c3321888fc3b488897c8bab046f79cc456bba9f666ba261284a1285bf1a9a9d274d9b87788c225c0ffa20388183f35817e5825d450a1eee881f94a5a129e688ce6664021356580190a3ec5ed220b8a5878068ec5cd485816f8c1ee05c3c23ec0d0aab7f73aac249142d8992678b38410d41be710a285d3b593a8245e514a870c3c348fa45f99aacc464b399ecc0cb3c306c273e5f4c671b806864120a88c07caa53a550d52c5641203a7927b40631e21344a9337da2d128dbbb5f97b68b8e57cfbb1a67ca7741c60c2533e49ece409b0492a2e81523e6b6ad655a6dd1870b5de3690de3369c898b557886c4877ad1d67a1583bc70502b32a44afb9b60f88838eae005e2703ca26355ddc479bdf1a93756af16b7789a3221fed9a4e468b710035060752e884c56034b768d0a7106a4bebde7622bb46b6649195301192c498bb555c653c42f6d84883be82e8fa56ea303caac534014b6bbf38a9f73283e5a40b36e36c9d8b1a9856aa7d9913b22c40cb103b74853c53c3ab4ce895388aca8584449fae927b16534f48b3aaf350030a8460c8572bcc527f1f62bf1c5a9bb8ccf3ee66f66dc19286782911a6765c72db77ac0e976a2bc114a1b110000000000000000000000000000000000000000000000000000006bb77bbab15f219641914e23e02624045beeb4d7f4608d5e52063d1ecdd8ac5f11536217ef54eccc82ada15ed86ba2003e177f270bb5aeee52f9436e31a379d2
ciphertext: 1a2dd390e05984bfc0f55ef96da5050fd9bb03891d4d2ddea46c463aab28fdfaf63d4b2e0c9af992e4f1421efc26ae86c2b296f6851bbe2e898b8bdf4057e875d4a98469b7d2646edb86a5eb5259341e0d14986a8ccf93563bc6ac067f8ff6997c2e7bbd897f02e844f180769fec5af9d6fa017022cb0af622b6e4f7a69d73ab01d3d09067b118d51805e1b6413b7a9e0ef292a6fca18a8828912a2db675f0244cd63d9340aa3ca00dc5d70c915b0061664b1e1d64d3d4dced3ef739302f1063442569efed0dfbe8c019c27823a3aabd865a47600ff9e24f748302bfca1bb60faf4105889a548be9ecaf266d8f02d3aa4997202477a70ee71b6e79dd1609acb4dabab72a38448758d8debf55369c5d3e0870ca193018e0ae6d0ffa33b93e962598b43e89d5978a9d55a608b98ceae5e897363f8a9e253acf8af560c57e07c4c4bde807620b6deb76d581bf92b7f514509446f5c4e4d09430b1855e62854988302c931b9e624644a636ab8acaec56d7673b26852c692e8325fa1b6215f24ebfb388ad1022fedc0bef272c87e10dca97df1e63f1a0e9582daae0f49e30c6acd119f7c4eef59d47443f491df846431cfbd23900341086a304589f52de1d862c26af32095e922b92650c68facfc13892430d428f626fba00cf9501e1e4646e55f5304c806b5acafe100084d7635702139725561522632e7e3871effe883298a7264a411484cdef78f9e721c0e5f3937f2fb7d40bb91620e473f9b97adddea69b3ac682e8aea2513b985fbae268176c1bff90e401a31e729fe8b76d13b5c8c85ed833d9b076b5e11acecbf0e96edcf8ff562255124edbeb5b9117cf486f30d7883aa353b9e433a77ac6912cc8e5093c12385ad926be1d0893afc7e64fb9ec55d3285e01a3ca63f3c07b95399bb4411c3f820f53d8350d1979ee9cc6bbf2d7c92d0cb2fd0a1de910d92589cf1aac29992489bc179676c31ae768869398fda50ff14860a1b4dd3bb2e4ba8b2c87aef7ee00d375956a62dc1e5d548a59f209448e62c4b1221631d4776dd5192154d637217d31feea1c4cb3ef1903b8987f4c184cf3d6b5355ad53c7bd3e0ae5373d9971115698214a93e12b98489cdd75028cf22c1da41096daca95854b35d8bbf7d0d4ca2727aa511eeb6cec5352ed487bd3b00b261cbabcfa9f082ba7300610c6f92725d532a86e00b2ed1929a8be7a342c079835a2285569dca92a808049f170fba39d990884ef39ca511aaf9a713b8d78973b4f4a2fde7ca8b6adbdc5a70241fe3ea7d005b33e48cc9fe6ce5bc2bae0746827e548332adf83f8aa707e703fd688c494136d8dfa50961a9e5b69b542ed6ae0e70ae159df95dd9d4789e284a675fe048585214047f7f6819f7f011141d265de9fd4c04f4ed5dead63fa4c8938b2f42108d263d5394d164b3254294402cbeb48663cf1ab2c296d6ada107e8aa5b505da49af96e1cebc6b302faa148216d38b9e8130cc654974ce299172cb875742e62c32c063ffe7535db2726f65fc8f600d4dbb1a20f
result: pass
shared_secret: 54c35602dafe572b99aedb7069a59c4f7818c860b27a947347657ac1954d6454
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: c5f6c739c640b093956cfb9d54272b3c704d3b364ff1c68510b875c8c29f30051b5f60b53f6341082252746b8d4eb52b3f77c818d42ac776ad393072d458a28b186da2b61cf64bc6d8b424afb49a3b2528d4863c876aac69b7c7fa95314dd36ab5f021ba8c575ca458c469409b71b31f3a8e371937405067951c084b6a832ab321642c82f33395b0701e5a677c3c783a47d7a6e474af454c1b31b174ce5285e90608e1932493e44bf48b921d6a58b1b86ec2a38b8ba2a1fe884c0fd608af3986270391d1a42843637d75194722d31bc81b2b507ccc0fdb309e59549a874d09239bec5a41c4e9bb48d6968152ac9d431cc3b290371296b8056ed56898b272b948e556926478291cb0eb1bac50b6718e98b74a1777e685b7b6d7cd6b22bb5846c69149b4e7b292a4153763b768cd5a67b65c3d059464ccc123ac086f9f41c3395a56ff3152fe149d76ac2fee2079653326bdd82dd6f66b6687a7fbe00d9832b09135756c5819b1f66dc44c7b32c2496f63cf077ab51b8626d0918030134b8384c565f0715167b21fab697e84c6838a71176748f12334078c27dda3133bd44abd69bf631badb5f2664f2857c033102ce8284e4b2beb9095cbb40587bbbf457054f4d11bf938af207c1cdc5217b0e9797bf9ac88f3943873c8b66883d2ba5ec7e6696d50a69ba55457853bc526819f1a6fe09973fbd19832312b554653b8441e5eb01884e94a355732e3da645eb849f520bb2bb4327d560612852152f8cba2f77db8d21922da08e60bb9e3b39b9b85bbeb9b1715982d292b8f1017cd3e60447278cc0257898575a0eab1408122bb3fba17b62a31902a567a0821d42086aa6417c259a1dbc93b25003fcdec9f6a5507b4b732a43c444c5825a05119cd089fb2e569f70b4d5e6919faf15d6eea641f5a2875763f42b3991f7c89fe473cc057c148ac58b6c88dce537da8632c10ac851f8916fb7b6ce89ba5053b8d95d29ea5d36c91981042c4aa1330aa098a6ab256ade08592a05c95021606adea0ab637824214009c2b915be450a1f7434ea2c7f562a4fe21139c2652ca8785af3208f4927abae698dd435e90e7474556af9b907f6d73c4ee64897dc74c6a876eba1b598e784b8094232dc62bf1119ef764bd1a3bb2d4fc7de069273a223abe5269a1403873087906db164b58435ef41d7d78b36087062419123c8b1d54da918f34920d3302ddaa300797b32c1c81b82798e421ab2589964334714a75cc84548031d5810fd87890a1932c98bad37c860bb15663cc0e91880af1947b8a26be9183b648b714f763b81652786682c210301852776aa673a1fde470afb56eb0b0114895638c609d8d55585d68c165f7aad64c1406a165788c3364667f0a3c65aa300fc4585e959abbc5e1b316aa108a1cbf703965a74475147a2d323b7295d185571000e43b9120b76fb0105ee7a385965026e8f8309d4badef88b433a59090f88bc4eb4ee2f6c1f0d880057b477e628bc35b023a4c9ab682822556afeb32b6c9088e35c107e2a43506c43a986a0420f5164167519c4029b47bc81e93c1ec149e6083b13589bd2a9c64fc6247ec323b8cb73cb9f9ccfb8bcf25617a87a3c2d8b5158ac8661dfc789e92cc47340db6d04313d3a689b357566b9743cace5d5b906a39249f1c2bcdf335f37aac2565932631ac318bbb7ca75db36ac198ac6b15a02173049721d10f7521a52f358f35f3719269a695a4b0fa03b32d8a209aa12a5d786d8dea4ba05498ba222eadd647dd5a397e655ed309883d76326231a6764a7ba4226567022d70fa20cc53a045cc5a1fc54abe0189a4a2b6bf8a969d61706944bc59c6add2992b6e562e9732973d32b97956203dbc523803ca0a462ae118633483cab85c645ee3ad51682c0596378dea5e93bc7ab652648cf1954745172a75c2bf6a3177a7841b089b6ee911149871a9d987c6d499b6e0c4d15c9b74685401b680d3e112d6d70bdad6a3f9954b0057335ca36823328ac4e124d55b9932d548f58b85a32844e9f0260d8a4339285ab46152bbc05a967c5f16072f16178687b0bc06b621f5a4a14ef86b9cf1bade0185c5c52b3f2c407479467e5516ab9a1128260317605d4db250e8f4b59bf28a6ac2606d280af28664b75092fdea1fe9374976722dff579728e121fc1944891c586625a880a7bd154aace3e919b841b1f5f8c0fb841d1eac1fb18002ece216d42cb401dc1681836c1198653456c9392944054200a3b95b986a396d443a306b66018b525fbbb042e662ec108f6b872749d3287440c12bd07d1061a524a01ad7342d74f8a4b76222c5a439eef4235d51c9494602f6624dee256ea7fc09ceba9877f9332bf195c43502ee43c75e78720c306c2fa47f4ef6b7d69038dbcb8272b334c98cb665b306c04252fad3559eda4b96c14bf50b78d4a9a37081a2d61cad33b3b9418bba25409fbf4a5bb3c775a43b39520b37b5b82191b4983398858bbb0c6c8031b9736a5f76cab0e647443cb6d983a5e0a6c27756cbf471baa17870015566db8c8a51aba969e976a1c6cb2be166f20680893950ddf09cf8e3827a2a884a7a65d61c7c70a522d17ac0939625fe63958741255b012712e76fa8da809a8cb447d730d4097bd3e86471019dc8897bfc82c3804a76a38919f7cb50ce79bc13ec4bdda215bda9789503aa822c71ad8107a35818a7cb055b303338e465933565b94950c11836e8e33ae8093b0aa0c5d5d555cbec5eb4190eecaa1525014e8a341e9400180937afeb126c278a5bc4713fe9c417c50c1e47c8756fbb6a6b265bdffb4c1456c5b7d7a895b6932dd9a55623341354549283ccfb36abb3068b2db7348bdb1172318357bac12422ab93a32b453bcc0faa4e8e595b05a145e614aded6bb77278bd78907b828b18a22aabea48bdd69cab061522a618cf39406f6c78cb983354384415d8b857cb451e01b24f489a3133070d775307fb61a0f6d56d1255c4d4e18c62e57d8422080cebc919b81e67c4304cdb560ab16d929413af650a53f870e8017e90096452ca3ea648ca644010d34bb79c5898b775b197189a55840f43371dd9cccb7b4a28a66309a515658f06acdddc47042acee250a37632b42af51adf1c0666902fe0acbfc8f59127753a40161de4ca07a5c8bec0d8ad3141487da4a842147b9de945e4962699033375548d680b88ae8354d6114efe284517778eb9b7957eecaf5b4165424a5f82f100d02b7d39968b98f69c2cea1a0b39394f49265b492ea8f4000000000000000000000000000000000000000000000000000000050f496e61849154f498d752102402b70d58f7e61615f724973e5ffa9065b18a2e8541047591efe1847559704339d0ddba611d0ff8017cdc84e61184715c93e2
ciphertext: bc07d2caff561b4645e3878d1de0730a88c05f46348526829a396f05a0a00603f0e2fc79e13beaacbe903827c20d9d687f3fb4eb2a8e9335459fb21380b8bf3734518778d8cfae9524ead1427c6a2dc379ddd2e985e2977bb63e932ed59c83a8b9a593e2adba0cc5f106620fc8c6c4cba5106bfdb4105def0c1d7b6800327cacb964e1d4ebbddfaa15b279115a1d05754c0c8a715fc2fe5aa09af7b96d5a93e758458aa5af8cba03b942f4d3c0fbbc2a45d3f7af5818d67219a72f4f538883ee2d3e507e2dbf4f7748446443bb71bfbb4eff0f57d8154d29f5cb26cfb52c51b676e9b1ac08786d5f475cbbfb49697a748b7902a83da49d285a48c7e9cae74b66a30b02a353a287b40a66a0663e7a71adab7d03272f2ec32d47097d4c303396db3e7b7a947f467a70646777cda227d72310806107b5dc16cfb36918e88784524e3a46c30242a40811593aa8f72c742f885a9623534753b2bac5e29110a1a854646abe1c0337251e85987aa612f3a095409a5a632af14acd19491577223c278b18a9c3ffa7f72ae49b89df6dc45ebb2803ece96cfa94ef9ef5b24fbe686ff90d130d3ae953a4f9ee6581a346b0612f84cb6ccad4fe94a53602817d67c61a9604d288319f5933f4a97dcc6ffc36cf14db593fe27f873be712186a6695d949d4552dab37e36e2e0ced229ea9dccd6d3bae22f9fb888ef400b594ec08a15972e8d2478e50f11947b52bf384c731b0e50dcd4ba116abab8af3b880c54badb11d83b4266d3e5fc25c2c8dbbba12fee2fa5c2017987f31277a67ac702b8dbe110894a8c81011c7c662ce9ab96a2e25cf5056a3e202dbf6bd5bef2347537f7811637e932d13ce02283d48d032c284b6cfb84fd813b6c3421017a7527eafcd3fbc5d4324b5351b30abcf1b366f424a8a0b5edf6bc1f3e8702b03eff875687c6caebd7bc15f1118696cc63859e3aab75aa9acc58484da7f2bc9a120844e4830429c0eee2b2324890bde302bc93f661edd9c04e1183528482f9950654e8c267234245aa9482d94e90e00e929b65431f986e7bb34524cc41f4b4443646713c7abe6c4131a2d67f3bf42f0a7f2eddf82b5c08a94d99a0a7d14c1b0b375fc158b7d4276eab22efb438f0d0a9b30e9dc127026181e42643af8da0b24bd10a532069392724948ad722b25477b481006fc1fd030aa62b217e6695dd4c7ad34dbfb75aff1df5774b061a4ea8526e9bcdf9679405c0d2e40dca00c9e80840e832fd663596dc55f602d094253893405a02d4414f119d23c4544cf832888db5ae8494dd2e8ee357753515d929b8a37b5b45446ffac20fb204b5c937f6344c453ffa449fe839b4afe1da61301057338fe29df93aa962a7374a2ec181ffff9252c8af5c3f75ebee02fba58a76066df4c6acfd5d1c18390652eb2f469d35dd708e63a498c08c5241b2717333904ba0e6e0845dca8c9608f28bd1046805cf7b220498145b23cb18184a259458dd2fbaeb1c383005a0d289562b0a9daf7d1e320aa302fd3d9a02c65fa901d46d4
result: pass
shared_secret: 7e1b4195e9cb70e6884d3d00f0b3f0a66b4d8c00ce112e1e79a1dd236ab62b26
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: ea53a046a53b7e3298d588b38c403e67b5620c5c73a438ab7357660362ab3822b5e774a9dae973c83a96db79b550dc176f9b0182d37f12118bc96a4982249a352219a110704e4a0ddbe545e4f55cfc2c50d54cac33ecb6fcbb3ac2a7bd4e41282476797a3c24f4ac4f60c33da281cb1313035c9c804d755267894d867469dbfac7be52a34f55c0dc642354e52967b043a0e0167c806581b51519e04af675147578c79f492da3ac0748352c6e5c7ff462008cb42e9817155444b214c3b93ff3ae7d44b5c2b659627a833cc18ccfab4fe6d6513dfa67cec499cd7a0d052a5f9ba378bff75033e69ad053c04b74c8cd756c7cc0bd494129e069cfb4358324066415bc2a4d1cb8401867c9954aa8a33f929ca279696cd515bff0abcb6c8692aa9cc076861e2bf27ec360983f775e9f166964d0c43c380366f19d3f868a7e038752d30e389c0c057b6d93a9ae64746d5b3a146d31269b94c7a753412be68d09d820be6890e5db1ec3eab1acb14cee8a317ee7ba0eb6027f13a540b07c12cb1164bc7d295c16eef4c8d9773bd2d32ead764f58fa48abc2a5491bbe00e07965017ebf40c973343704112bc90849d219c70b028ff3769e720c4599098d172674358bcaa8947ba6b874e3d94e623122ffb3984a0b571632be1c540cc5da45ed1c57da1054abbc4456678249a2589544c3dfdb6330ab35416ca49c8046c9446150660b45e05b720722bf390e307445dd8a3e23253cbf633c8ccb098976a68e481ee86b86a32865d9caaf385842cdd071b0974e807710e2b44c598a4a36bb2af048b0fd30bb6c64a539513ed2a5a9c6cb16129cb88d6bc62389b4846a2a0afc532eeb0f055aa85ce7b43f8099cbf194e664c59e683e535ca809d40f72d4a3d5e287b5ca3880d4af1f1523b60c8f811a17b2881602ec0393d54988d63a1620a48ab25a5336b25ca25d5b21425ee54673062020f065693665c68399691748ed8c2b6ea47b89391e7dbcbb3e4bb8bc0972916aa0ee5b90292b23618c5e9a68bff8476fec1c7e382b1cddd45069263a507c44b97663a9c8b4bc690c89d25893c4caca0caa7633bc66f449bc06603fb747843b0a8ce11d46ca100b3243a8617904a2ae48db08ba24bacd5b946cc96b834491a246850c44a0f049bb3e099b3353b28c3889bd4520ce75749b745e65e6442d970e917362cafcc9cd1a6194d9ba41f29feab98320e10234c1b0fa367f7c3a420052a9ace9a0787bbc420832db814e8f86804fb74090146f899a624ee9739ed55c40b3716724b8a8164b8b976130d89e15dc24e2078f24a953b2781b7d36a12334356a6998870a0128ab5152a89ddc84aca3475f8cf849bd762ea7b23bd2d743a9d3a9a2c2ae4723b5c1a3b5349a2d4bd2907d89ab8fe80624838130697bb1d45f873a3416164f862630e96075fbc5192be26755eaa1f33026a1f201a05b6b57ccc83fe9c191b13016a921532c4558b44ff0a26c864c3102ca921c299b38199f7162938387c3598362e5f616756bb5aad68c68e0a34ce96684597712341f391ca6696538582ab0dbd532c7757b5b24b0413145395123f0c4668cd538782b0f65ecc30b687efa78183de47f53b73831210c513c54febca5ddabceea01649d9c6588d68c05e93cb6959fbe348468cb6e7f482d2b0507a097625325a7ff5740086bc203410414845a177c578698b313842dd2737d79806fdc8aa4ad8b91b514b6aab60885a49be68ba60d05891dd1cb47c1850b0105ec15a95c93136f22a170e346d2256a0cea672941335423cde35492967759b4317981c34fb0d759a2b08aeb411c362b2630c4b8ef342cf844206d7a5a3934bdfda95ba9fac912fb1844a0bb62041868ba0e3660a5551951b39880eac2959b5028eaa765492416ecf7a05102450eb20eb2a28be460972066b41ac87abcc28b38a7c92d91779e0c7cc8b42f107b48269521edf0c558a1b767536d295c3a7e60b9de6a8f299563be7c4d33d33940234af8c7764b181fb7b5af1dc88e4e830725533656520af7344e4ab40f6df34a90a898c672b854021d0631c1b1e9999d8176b22a5ce829a240642e19472e635a83c5086f87872f72a62e5fa038481a6861141227666f9203675db45a444c6310518d86a9221c9b6bedd753bb7914f7995e39031963ea056536a96c9b14598c95652091dba9210168467d7388b73770aa905052645eaa877c6f8a45acbb775d080521479314e214a5217835667dc2cc67dac17b0103b1049a03585b30631c6dac53b6d4056e5877786b295fe94c8804b57a027609bee938a8812666d12345e04c92469463443fad1c2188c951cfc6a06c3b8c3ad8856ef26a67b7841428a1f5b69a3fb82cad843a55645b78219d6de824701b0b1f192d4f816f45032b1cd5b465d33b3a9cb2fb04cb271a3cc74a8bf7ab6ac7a00e8ce6a0486c660680219c6ace0917b31595584f4756c9c5273ee36c37d25d5da146e57613edd34795b9cf61bbb7ebc441d575631215a87c4070159136348854c297cf3ca44fb2814448e30eb2c555aa2393bee966ceec0221a278f048aaa6d09b1d801aa0fb369ae4480f051329390af222712c61a59f98a31a03ba90c1a6c34c1c98c0be7bf59fd717ad9894786acb1cd081405c66a2e79a1fd77cad853761461c99218aca3cf4920703654fb9529c106f41a78b259294709bbc91679d0442bb383c28d64683ebdc7b94f4592c8ba2c1126c9dba9377040d3a124176fa33a3905cbb96764bc89a69480b74e38f558b422ef22e390bbc76e048c01129c97c26125bb2f86c4bcd274816265d8c41167223b0a22406d2a193ad3b1083b0cb75f9542e55b9aac02845f59618b5aa580b5b2bb44c192a906ce61b8c368278618d8ca8409fc02bb9b097acb208e3c2a9b651a316b70cafe6b9bdb32ad794b4f018b66ce55639e5558f5a3990475794bcaa06f17093d490fa583e6fd9596b40958359a30f813b940b1e1e4223d3857cfea691eeca944de845c2fb502e35a5f1a3750454593fe1c41662a3b3da407aa269c43167acc98f5f3c662d6177d3594d0cb800087c6a525c586d86c12e941b046625d90c8ec6dc8a5c546abb19a0b585aef39379db926691124265103bbb49cfc4e9100c803b4ef68a904273a6c899e48609bca003bcea9cf82203d52b5f9b65c409ba9503b3b16c7077465aae45d2cd4ada79ca43a9e99a124b7c9fa24a323f6c6bc18b81d9a6161191561f3776740b539479582a46bd913ad73e0900000000000000000000000000000000000000000000000000000009ff3bbc6c725ac014b798e2d5146532f55ca1f580b27b436aafd30679eb4bf35ea63afb095b03165e6f3b9488778fdd771036713df7b893ab8777554eb05f64
ciphertext: 79efa2d537baa2b87a787317162d3dbcb40cb3c25f540ddb91aea6cea9870bbc5a5f86f8900b913fd4154bcfc7c8a463b9b66118c502ddad539186fcb079664f44a5363cc8d80d6a4c09f28cf8952157526cfef7bad2fc2cb69ff03ac39e37d47faab64cf54f63919303badeaab9e59df7040511ae335c5230e46e00a666b994d647d11cb032e7ee235b5e18b1894621ae93ee129823334580381b857cf0360196cb75180410f9fe7558d0e189502a5dbac5b4f0597cb3d1d201f89de26f7b4ec0d200a418a26cfb82cd4496c3ee22f6eb60f3ad2e1af981c238da13063d1746d65f77ce0ef30894468b687b31443c7acacfc3b3878fc9ec56878e7bd1a9f72ecb1706a4e5face0a83282cbc2bd15c89afbe3c97dfaf395a96ffbe1a3f75af03311afc69dbc01b11ffed2aeb8906505e910105806febc6e1298fbb5c0bf501232b888b7e8b285953d250b866a20cfdc7833a732966b3a03485ae2852d0a3fbeec6dfd0ec8015db5de69e55f091e956ab4392834c5128417105541b1145b27175fe35efbf3102277b35e42bd83aac25e25da6c55c28a03b9e2a8135871b4cc49fbfd5598c9eaa2482f249c0b6332a6999306be55921a3016499bc63a072a6e9eac894a3ec209177d07208d0d271c47f8065d0facd2e975011944f7884088768fdc053cf86f31f6d348222c06467fcf8ce0d404a2558e8cc422521a4e249549037d3e8a29e03a9a9bb511d9ffef4c5185a380d874732c9e862a6e8fa3fb72b213dab2ad0d91b047440b1d334660067566e6d2e14765d8fd0a45b9b8e8566419a6d7138e5a106c31b1278d50027d152bc8658d7045cb2297bb8382585b38be2d5fafaa7e8c867c74be013793874f181a9798193dee26fd5812eb469d1b842a969cda65d3440c67b00e6d1c3ae8630165499c1b4cf3153fb5731916ab779a2562ec62637d747d61342d832aed330e5cd794de900fa507d4b5fbdbc5f3ec1aa69d0319b3644d46d9502d435c1b5a329c0d3524611a145e3024595e91c2afd577a422d59d4d54a430f439534003be467b6f018736c4bebceaf7c83c799c2b7745ce7498dc84b9e455b96410dba1a0a5720fe703b7c0d859a42445eee7ca3353f294438a7d463fc3e98f4403f93b5fc4add88cc22db7bba150a2988639ba96cba8e2a0c980c9bf8cebdb5beb262d79e86cceb774750cd9a192ae93d85e60722ec6590beb7df8e4d036837c97dc05c7964dab00034683a576da5b51aa8a0622edc27975978c7daf1b942285572b09c170dd332a99bbf703d84becc6a96373fd1c0b355f063e4c2c6e59f5437802676000a819b9b99418df893b98a8e6ca22d95da2c151fb24a3a0e5944ac4ca6376e6c281b275589a3907c0473282967a121f1792d09a15e9d71e71e73f9f627ef0dd478061cf053af434b0663624c3bbafe0f37d7a32504e9c686f41bf48e287aaa8fadb73fece907f26a9576611ab2176a58e5c1f3e98ec0248a15774434c2a81c7a8f57f9950b83c0d3770d17c4e57582387d6f19bd
result: pass
shared_secret: 2522e72d308dc9d7d701e0b024af9e15627572f13573b27c406fa750df9636fd
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: a7d40e120206cecb9458a1464b96c447db086780708c7435e40bafe1ab8cf26caced91b888711b8b95414e080c2be24d7a622c2e0410fb9c795a25a50554abe8b9049f9890e29531cca88e4284a5bcec559f939061b003510c8a23991cf474ba6676b0599c86dcc0976f3b61cb624954d3914bf28e109193ef1b9efdacace8574dceda34905485e1a79d51c8ba06722150d8a243d69f671c18b1c2a77c990699b72ef5b1c4aaa121a8e5a6cc971178127024166f2593893bf3b9e0db273040b0821051cab28af5196b8937538a680b39251b08051502c2a3d5504f78b767dce91e2116280c3532e9426b93d8cae3e9abc5aa4832c6bfb02a71559bb689f82c22835fb314a5e6d44bc4085eb39ab41555103033a0f4b6aabfc5246c93c07840254989301f88776c06c9f808369e18445058b4d940783d57b7d7901b0d63a6e6512b31a63ce0704028d936462c18eb4bb78accc3dc56884d9837d8632a258c4e998cc536248aacc62f7b9b65191a28a27a1cf44a0d512875ad5112e034c0adbcc67edb84eb000bf3621e7c1c5cad1cbd06f848c5d8c3601b07463b5c0e33cd260a2ec99a972c47cda74229f6292221391f37d20903aa76eb6966195acac6373a41db78b8f7515a473ba04397c2e94a26a6acd8f2cccdc572d4b60e56880fd0295152e18bc79699feb1a0b6f6c7ee19545f4124eeda5755a85d79fc2dddd2848216576e9ab4d07b7ecf77a74937cc1605602c62003dd5abaf601b55ab0cdb37bb3110290f829a742c5607ab24a50000f3191f435427b5345ef884b91811bc44fc4c6de32bdb0a73edf80c8783a5a6b6a2d06657b16104cd62ad847206ec1b87729260e91b2afde6b0f13a87025c10bafa88e1fb1a66b98a5308a2c4f10874324179a2729df786627271ac5a945072beadf878035169c543c0b07acc49241b7feb406f524b71c787ed757a3d48c233bb75d97c42e03b9973cc680169520e400b00879cf2bc9119325586719f22e1b2de163184b2c43735b2c1a8654c92138b90c458421f681136e0d6c417b20a5f8c126d3672a4073942855b127a87ce96c7e34861923b3ea9bc9f0aa277746927f0777814862b0845c3bdc12309241f387cc6f4ba4a9688b947ec8b5603ce88ccac5c35756d0031ab4a5e32f6ca97184df2acb38f724fee64a6a688c69f6b913576af98ea2487db097d7c81dbc2a29a381b2345495160c348e8207e313929dc08412304f6a01c90f6889e23b7974bbd6f081f52dba8baa716b53769e6f71b962156cd44a3f50563efb3b65741aa26e42a3720ce737c7a7ad5c875663bfe36bde03b106647ba1ef098569bc10a0940cd300d58571dd354ca5ef714733bafa4308b3c4b7528862664a8656d16c9c3837355e39072db20af20025306390ef32931e793e33333cfd893c6227215027ab7ba9cc0212ebc749abbc62be483b3e2406a5ca10d7fc534166646473c27979053928aa5445c4c1c26cde40777aca39f5a64161c322135fa176d44b694341a0d3a05de662ef0e1aced53c4ea2762c1333da3f987fac65ea63a17b55c3f681c568d648966eccd095928f2e32af2fcb0674ba3a50350e282c99af149ab1b3f52d3b9f838b1aa8cc5e2c1184862562b91806efa62f1b72a8ec43e70663de1f66a59687ae0cc1d9de1ce69244fccb0841b4b1de2e964e29408094a1ac0a9b4daa836e94454ebb942c6e9ac66f39abae73f61a99834292ada3c824bb53c8e67912a07377da92e63087f8d947f59d94a842b7aa8832b2c3c1aa957577f55027e76c106f86946f036804671b0e0416cf62e70eb8194d88030e2b38585181c4ab1fd8165a821bd68dc8fb3b403016ba5fd129bb9d23182029c4a292433087632816c009a237a608e65cbae17d688a326bd6c1ab4634576fdab2322b983f29c3e63b31303cc386bc90641c84965572c49a91f4e8258764834f38ca7f869cddbb10674d4296e5205ad805ac48462d3b31a9e6067fc0a27470aa593b896c3c319357b9bdf0632bf0786fadb0ac242609462a06f82460ea75762a678fcb07c350649d13c24c9e33200c9ca0e9bb87dd2c8578c7c4e27b1b75681a0b6aec6a55e767c4e14820f2ea609a16b862d5695556b0937f53e0ae370086c8f771295b1a09f0003a07bf512c4272f7241752a6603f8f51ea9a088e5263a59eb0b13b87a1d2929c2c29557681f180261f46c294de4aeaf380ca5f79efa2c64ed3131272ba489494ddbea14c69c46fd6346a7ec9f72d89559435e139a67bc3240bca29b3774127dd85d53c20bef719724612c462bc598c54738c87a00a9cb8c4b44e4e7ad4573afd9324fcab820cbf2091fd83fea52adc1b82b3f6c86369aa358498197631a20d40c790c2ddc66b0871c1ef882305bd978055bb934467d3ffc0359c2b31748cb19f615a63262fdf695f555be1ac432126b08e4a97acc18b8606ab6adc5cbe4589389e1121d737ba2b3a84d02bfbaa669f3a06b1be13fafd42a1773c830749cad35456e956c0ee64a5fcc46f1763c3b0c0d3de5c296a28f61194ae72979add8c7ce710d4ee846af81cba3e18d5e459addea9fb565b010e9ceed5798155227dcab155984635d7539d68c9f0d30537ce8b573b6bef1170540d0c10528737d6a5b219b2d96e5709a721b40536ee3c416fcec0bdba013b0fc0e786c9765d312692a80a5c9a3d65a6662788d194722d63b4bdcaa700e4c3daeb911e4d45674c3720be35269a21c0717a4c3aa2f3e1ab4f20a885cac44228138ebb70bb4548dedf8678d2163c339c1a9c719c2f1a51748571358c1451b0ced7b90109c98591126fbe57e1c913b5a935eff14450a22c4a108108b99b6efcc9bfd8438b5024677144885f1886ba068a6191ae17b9ffac1087bc94badf510095baa7167a7fe245a89a2a627d2631706a15d5aa081d037a4101b217c1c45fa0d83dc790447121cd9a533592cf8ac424de8770b45307f0aab484467c4acaa82a5669f7621e8ca42ec0b9222766b52775173b288ff5b01d70a60a853aa44917b8cd09a4b666138e91a3206c97877c96d690957b58553018f55f168c1c51bd9a48ae762a65dc73f366c79e77c42e793750924bcc1472cd5e552e20868a42047593842619c2e0fd40a3c7bba9557bb5c71185430a0158b9b95d04fefa266005141ffb4ba5160a5eee1499c09b11c549bc88cc501dc94a0a5828ee8a776a2a4aba3bafd410cc8354216cc3a93a457e9847af39b898b04b60a0c661a72a2df2b000000000000000000000000000000000000000000000000000000da8d41b69d2601355a1e57206c862dee967af0224b3c5ccbbbb89be1bf12fc688bac5e523fc2f73973b46b1727891a6077329e10e94acd027c9dfa38ef4e21e4
ciphertext: b0e578cabf9deab616e52934955f42eec74bde5ea98acb022c427e08232142dd08f9120eefe5f455c8f120e672cb68f3a146c3aa457b637d0901fe2b4cd45e8b208e06823b8aae09778cd00fff5bed5232d219a2c33645f2dc30593e591f697118a8472eadbce05c9fbbc5d4b717b880065173cc0854182555376dbbe39194e4204067358808c890e5fe96028921fca344e3500b615f2201a1c4e4d13dcc889cc9b1ac72429074c21a52f4c78ea2c467d65cd2c9ed682f21f31b27af4eb5cad33dd633185bf32e726fe6e57b03168803f693bd85f5a9f2c3ec6944e9ded2b8f3270a89139ce50ba6ded6bc6b0be8893f44aa5856acda60dc1c4c0834d45574ecb6183d6e59a183c0125ff45c718be2cf85b5ce6daae6e37336ea63856561f1bd4404df725d5ed9263038d1c623b2e1aeb35924b79de474407168834891af783fe5d83a631eb14d7cfa949d698ffa45e7d8c46ed4abf75cc666b78526c9b95ebb2920c77c56227eae6c893b57f9f463ff2ebc9acddb2f7ad543c5b2259047a4cc87ad05c08bbf02e8bb267bc490c4b67106fb598d42135c927fef3397f4c3f6838776787f23a9759dd3214075e79eb3929932becde84e82c257e4638a19e1e3312cfe09d4ac681d653d749c8fa6efa6dac35ad59399f1e233540fa354681ca55db90007039b7e504e2e4082aa3e4d672019741aa02a281454d4e1c73a1c7d0b5449c2e143ceaa3b18cb9a74a89f1ba74963dc5dd4155a356211277af3a267947700a2cfd84a605ab02d37bd6faa8a26b50f7b3d9bdc79913272c31dcc0f0183d05933a9f233504ddee2dd851529667ec5174a3d23bfca197538ebacda36bc29ca675384c0b3f45e4f67fb66d8dd4aa57b7da50ead391e6b663af173e7f4d46139f5d0f4cea84dd32e4e718967c6b93617271224f2fb3a1ca5febff5f26c4edc60e9acdd9e464ebb4571dced645814e1038a50515a7e06501adb2de19fec4119dec7548c41097964c3151226153ccac24abd1415579ba1c37c805a5827332d97ba90713829fb30b7b09b275d75bc10d4a26b33980a0ccd4b00844d9f379551bd0170ee895286526ea9625a72b6cb8decd9cf18e57262f8102a025025e8168465a65a7c7e4d5fc8742781acdc16171085d51dd5ec9f4f71f58cfaf4557a55d07e7c164ccf7eb427145c7f9a800e9bd9192ec0f74d19fc17d3881b1d55e8600aa55abf78fd1e226d9dd6e8da2bea15712f5f43325d4b9c083d6e37d35c043f2bc8c796ade072555263331bee7fffa54e2099135ea363575847abb770322376cbfd3f1b7980a1857c55fc82aa80bdcd701c7b7d66221f08492efb5438a04d041b485bcb61f6fd306e96cfe758d99ca1cee70b200eedee86145fe37ab7aafcfbb2df694361fe9923e754187c3277cc895c4a53732ee118c7b6156b55b30847a6e828b7069a5d4be623abff66ba87bff49294dd9b1f698ba445d610973d052a80691c9968e3179aa3eea5b0bccb3cf674c5cfe7d2c14d7b6daa7a4813abcd56ef930099
result: pass
shared_secret: 1cffb3d6d9dd9cf90d79fb2c5c974818c5bd6f32ea4d44c302337c4cbea44334
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: 610c36a286cca4815c657bc2f28b854aa8602890bd6ec2700d64b495b50d049c5963b8294752942d11c1d0182ba6704e54c003b828bc58b6ca3ee0823607c3c00bd0471b4df571c51db3003e4cbe6166c0caeb747f79573f5b8b80d12ca78bc1d3e01a318bac91fc863198afb70cb9256a330faa06639caa7ffcc1248b367bb6b0bd905ab0098b79b85ac5dc083ed43ed8b248dbb72e5ad962b3201c92b132b2961d9867b48208896c11afdd929be2792839674b18e4c1e99a7df714ab7ecb58570281ca80a92f148bc492797564682b560f1bfa42b2f7734047cfd6375d3dc05846da1d3511cb3c8221d38226f29ca52b07471a41764f86ac3418a96aab70fc8454d6823f8b7c6211d216d08c67eec474a3cbad8f3587e22670ae5a9938651f3b48011341b6140ba393621accdc3f606b080579197c48967f1c8d11026d8f90b0697869ea49cb9db086ef687227b2549ac689b564326a2280d8384698185afb25941ba0365b0c1939148ed6e1bf0ef5c764832178d47a01c3573aa268e168b740194a9b36ac2580a7bbe1625900befef3adc6fcb356100ddeac4393d388fe647c3d623d1e6a56a96073bec59f5fa39581245e31aa33cfb865bbc28e9f2498bad34a5bc65c517bb8cae19b6d1864fd7a0c48aabc78d0373a84c168f33ff13a9586aa349a185e3528003e804c8cacbccf0073da46567f7c3ee6a55eba856851234b4f3725e1bb3609e50cd4c9c96ff947c4b048dd7c64b3498d23c234e9bc45230b8b0c797946d0980dfc7bbc5773620b8330262ab6247fca5684c9fb8c2e692c3f654099a7a93d0aae62d24eb594544a81431f295bbca7b15dab7bcf728e3dc61f6354a459a120c371030f3b622569a78762b1cb08248a455e0f0847e1531d194acb0507bb53e9c0e13c8b2f45ab06362be3d9bb58ab6d90825a15211f81f4987000cf74355a28ba08443b3fd9d26b70039955773f9f840207f696d0e7a4989c4b38cb23df626e53b7ccf7c1bd96bc3f68c20ba180a482799d2cf975e0a39d5fe863df954665509b3eb63c257b8c9e39050bc4a739468e716cc289a79053453a28906d003535536439d418736a95763ae222c8870b66f1b5a9978c29d238658a3e773063dab55125e851983706c3ec68d7fb1d595b55292885f758a8df752fd3d97a8dfc33a228c896a44bc039ce1a2069810b1304d44522b1a5e43756cb843b5ef515d89c310f442f585259e5d460dcd578cc51ab49e63a7cdc2566d77e6959a7d24150cf0b413d335efa65385ae13b482b9b4db4ad2518b71704098d7481d2233e2ab201dcb4a1b3604149710de3cb247f29ce8ccb2ec062b014708f397482dae5936bec37663c849c9baa9d3cc88146b88cf970e574694af03fb78205e205435221b32e5513989047e62775f1ba5aa89a10c9d35cb566328eaa5748e9c5057446f96cc691d80208940cfea984df8817d4507aff0a0a96b8c6729329775c8d75935d7624cc0a06ab7a950f2b73ce4d90239706403c0651dda56544ea59bb06a99f00bd698a8c3f127fb4a3759317a05ac244a07342f9a47257e5649dec2c7050188ea669a97c137f707f4e5b4c57945f82c1b0b2040476d73acb54724cba00e8014b4f4687bb6670b1c2a29ba577100943d5b926cb396423663f710328a8b536403530eee05006e7a7cd679ea44c29146494f1775cddd3b43ce6a903283f7890979ee98842d5a76f93777297abffccc0b8faace8f362c081aa435c32a5c31773bc046e61921f1a5707579fe36067588a0f32e2cbf91aa3ca6b38a0e12ffdf8685874869028775fcb7d7fd7a1e37c611316515638a510a13e950960e6f39395e436821165e734837ed575ad510d4fba6c3ad67e039b71a9b6c2a7ac240ccb3742d65b4b1c50a6a1a496995da77921ce33624fc48135e88c59caa47b299605ac1c79009dabb2062e375547ec907590b9bec52c86a6b9e394ba5f02401e4545c462c5f320939075b516c4a5dd0aa5d879456449a115125369584a609a83df8685ed2ab45f038559dc6b0ea170b09680e7e747cc7246b6c182d9199941847d9c1168a84400da2a98215a9e96f6bc869035a8822b27d459cb52147d966e0c354b70ecbe46daa9034074019acdac30055d8a1a02741ed8e602e2cb3185ea44c9e61fab637188554c8b12cc5abb9073b35108f59f6832112ff23b00acb0936594c00c0534a8c4c11cae4787092bf497b60b4a44116156e8368c0c950f3677f6424690803ee92373ed5c13d84c355bf041edcc872965816d6723b344244d0a54f8ecb0f1703ac251293503baac445996a1c9bd6ab851eb52f042692a2b10e4b9b44dc9625973af03fba67a3a93ff849dbea64739f643bfb803ea8653c2b9ab9639614000994bf48a8024c4e61c8a07a5c79b19540084bc7664ad44122e46ca1fbd517c8e68aeb3d835e53846848742a9fc2a4058047969bc11a773e623462c7bac66a34c62db861ef64dedf23c0b7441f6b75b4e60b86fe309b1b7746d558987f6a92cb8513792360ef76cb6548f0813ae8dbac418c25a1d95b06c530d79c6751e7569a2027f8a5354de3a70752764fabc632f3a1bf2473e8aa2a5cf815b3856a89afc122d98ba3f74185a3b2c09049601e23ee226329f024ac2692adccb2018b22a592a450b4a5819b2a498738d29f7145e534e527c859f05ad96cb963314c58a5a6b050ac6ead9adc4782859e3383170cabe4871cfc17a30ea4ac55cb998e77e1a26662a255f99f4ac7b98723341b2c7134adcdcab12a473bfe001127bcb01f84df31384af06171776263085bed1aa3374da7136648608b569a88663d2122e84b4b946b35c1f24a836e924202b7c7828c15507b17f906bc0e4b28c230134d90655696edde11a32c7a70303aaae3363e2a6947b4bccefe9ce62953f92521029959096a8910e71c51b69a0615ac790341c0ac3a574a79d34c11b4a974ffd7cccb05995d4089f8186b545b80a166982cb53123ef644e82897c77889ef91bd8c5a4ed1a4a414389d77307d53487940fa32782061e8458e0c601c884321d121b48ec04bca78c60d39b0c4bc9291945ae18224ec73ab7a451b9cb511bae34a20e326a497cb6ce46b5848c289da630f497ea3975eda79489f18a405e91bde288379f291f538c1a1426cf1634bc033098bbc9958f7af6e408354314e7221c37c1610bf904cf9e7807ad327f0f316761939674867ec7223f06a245711b0d47832b1a699badc8e1217798c0d0000000000000000000000000000000000000000000000000000007420233153145d018d37197db4a72facb39b5779cfde51a1ffe665b09f338119e42ed33e0da5856106580e02aacd0aa1546d3df0571d17452d22f186d011981a
ciphertext: 3159aa52482f4262cee553f9eb6d853d091a507831f5ed1af37b9c55f217eb1e87e8b0dfb653932c27e9e9f2c4d45cf89e9cfe9ba0d5175be56b7fe3751a4255649cfabdf0cbd5a8704d58511acf6e0580eed572561fab262b24d39c3a430a4e54fca969394037df12fd8cd71b7b6ec3d8f7345b05d4c16c5871b686690cee9804012a3379bbcf720f405c3c83f59aa391cefd8b00a73b41147d42c8b7820b0e779c44e032209067349fa4cd35e83850ae37ee73f96fc6bc5b71ff9b0462604b4e07be60cc76903175b045b908c9b8e7e94c6bc7c48ffd49698873913f9132025e51614317d27a874e319d802923804d1ce1626420d5794bbbe5e077cbd7fa3d958fb2d9608a3d41f605908d21fc7f942e3152337115a28b661f76405620b056692bfcc066f370449628f8e31b7453e5b7b10702f7c195dfb779fb3253f86acbaf4444ba9ce01c9b043133a233030247f8fc44d5b8c9b024ee83c186a62ba9fa5a3e45389217884a478f238d6a9b8eaf3d87b7b4b4375d4d5226dfb80255faab42380365b5511567978be9726d21178eced7294463a348b1e976d800b1114fb8230115b28e51f628a31aa8cf2e3253a7dccaa37f975fa2b8d32a6b6147033cfcbde33ab8857e3a6af95e4cd0db62fc020f55c2d6c9204a05835e2cf878c66502f572016d95b30c45c2ef6048471ad0cb7fe14250dddcb4014c392c22fb1dce1adc8e02f416d3e9b417f41c1b4065b975de472d0e9fd5b3a012ee9bf6311345b4968f6f18262bfc2a38d56d911f9efb981813f77a8a8d6af0618e015b8b005e7ea957f89f140192c7442a645ea7012b5ea2ba9f8cd2fea2ad3e41c6a57582237d53444fceaa933d61eac36d03a2865bfb7f12fd8cf451edb5050a35a75c95dd328296dc32daf61622ce0cc457c5968414b634b3e12a0ce45bbd733e3982c087a037d89cc86d546007bd92eef33949d19dbd4daa18e59c7ea3572bf3155a9a46af527347f4f4dcc2be3cc285d65f2f86c681a137850431ce8d2f76e295e74bd0b3c88f1b68885522dadb99fe1c8e40d938c9610e466770d62c34e9393241907d9cd7bfa470cb8fc149306d9450a7a1887d03cddad3fcdeda1ea54d3f126bb29a1ac3d7c5a60ead90d74ccbf1a75b4289a74a49e0a7c4006ab76a83915ebd4a95a471525444dd2c3e748b1bd347774e2cf01f90f05a1672c58f4f563e4da083e95e0fadd4ba57acebcb45611a3923da1d0d73f5c9a55489fb0097e123694e413460252892a0c6317dcb56efa834f7a51db4a413976afcb30ab4dafbe737f43da11c1b08a2472cdff3995dd7d23382b866873624fedee76823d37ec230dee2107258993d5b802fadeb89c9469a33c66c91567ea92581e0c2c1eaa2e2a4696b024c7c6009687d07769438a8b2ba75a7bfb32841dab8acfb8cbd4d1e26c5eb68bc49bb394b178e6f89dde843f4e2c5353b04390c245a0bddd1aeaefb87528b719fe42b35ad2a89ef34826d9e23f95b1bd3c3b24f785985e10dcaf0eb33f5f71f5cbe55
result: pass
shared_secret: fd9e333ac811ae8be12c052c65131e3a7a32ce82e39055012ea564e10acaa85e
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: cc389888219463a7a5f6c2ca3014accb3bc26f2318f593876de6a49822b6c1e694b7e5aa9140a0765b6334ec762c8bb018d28a99004081256159c836f4f800d0c9aa4a7136fcd89ba7cc1d6a32b23ed181b3fc118ecc60096a4ce8261ea2c0a6ca49baa28b75d1b40215367e6a33a1c177937bf43a70c3889f6aa239e20e499bc7a836694a0bc2912cc7cf211ba20c12d5ec312da2815ef20c8565712b22a927451271040cf4daa44d79705b97993584424e7b3224a5583e5b8eaf640e85015676517113f53a415220fde3638b9c0a38115e668545305ab298b9923bc16de5b9137b30a39a2c8b5fb75e4d1168593a8eb0e067bb9343f1a030e5228bf0b3a49169393cd14f73c2b8221b1267627d80b97d30544b02a4c7bf06099194b2d646596aa439d82a214e6cb9c5ea1ded727c8143755cf881415b6357661a90d5ae759475baa6076eb478a5826f86f9868afc47ac3a02a0e84579a25466a63d933b071213c886790c320416d9422d280745758779635ba6f848440b2489144866e8e018200cb8305b3060926d7e7213089a06d044176b053f3bfbcecac7840dd7844ec29eb17bb2caf321a5b17848c16a678552727a3d70c34f024164b3c4856b0a4ecbc78d345187c6e09f055273bb775078b43ecc534a40e66592b607b56b5f9304aeb048375ac71c30464e979a656f1728a7b700e3b33e5026bf40198b94455d2be37cd65867522b20bddb5ecb7a010191254b8a403f37c4577a613ea30678daab55508b16d6020f074504f928dddac1e8367faf6199715048c96a8fd6bb225715accdcb012cc856a76057b6b72b09a4aeff5b8ba278c54a750596e82bda45be19014e8ff52df181435ed9ac8c402147b539ffd984c291535b7bc8b26c5036352520730195fbaf40033fac450843e808b9ccbf03b40a9ed657f6ac4af8b65b4e389280633d79799e0226b28b356fc2e39f10a80452dc934caac7c3c521f0c5544e7821a403688f08378c3086d3ab8f7e4036ad516778da606204aed3ca1ae8c42e11038a64ec78a5fc5dcd0475429124b5d665e4acbeccca3a296a8e878b917b886ec7f029491c661bba684ac4229cd71373c829055b602db0518a481230345a34a709010a03e4b197273510a0a24465288c327c10c75434d9473208a7964db7792ea81c5fe0c4bd967c3f0c98765ba7d3faa4e6097f09e9bf10638fb900a764e4a0bdba2f19165bd69832681310a7a2585bf06322a3238dd26a4807af44faad999397d4aa14e76c2cad5326ce573d7ca04c03db769dd01a65583ecbbb991e7a31b59238f8741845f1adb5992607184dfa19a9e8840ed9e1622ab93031e2b448860d411a3d239277052cc8ea71046a0b1ada191a020c322d776c6655ae71964d86314a86a47b6a367b8ac5a4aec75677226de0c1864492c88fb70a53187cb76835d5477346646a9da97301156a3ffcc231f9a0da760dac142674e5cea882364dd74fab66901dbb7eaf037008c52073054cc2f94ec845444054058402515bd206d496bfa02c442c746ff3e662b899c34c40900902c4f8ca146458522c6a7af772b2df483f9d840fe07464b0c66fe1036c070c6f70278e9506342663b07529247b1697f6513e1ec8234bc145eba3446eec18b3826b2ae709792648e071a7c4627e4ac7716db5b1d6040ba7b8ac39b347ef721a99c879453846e1aa591b8495e19003df973580d4192cabb72ae2b1f498bae9b3cfffc8bbce09122cd1910a406574106810dc556894777f35316c992f3b902186dba411ca3462b927688c81f7269b7c2770de5aaf90c81f752a3ec77942729a68fcb38a62946c601c945249bf0e280b66764ba71a44134ba84df1400bebccc61456fdf3bf50aa85e8e60f491ac1c1317d831ba5db6601133883fda81115c67fe4691d9df01fd3732b336bbc3899cf067b9e3905294902ca5686480cc94eb4e98260408b4dd060cf4b5344380c89d564b31158ce098ce1e06b91446c4189c6a4d89aa7e81befa900b250a7060406e25725e09399963c5e3e04219d390e6c28983e335646485023312c4d5bcad9aa7ee683b935d71af1908703fa2c9d66c8b6c55049b3319d39c047b5824d04975a9034e8ca1a9e1a5b0bcb222c5b5c848818d14503c31270d4f8446d013d4ecbc250b72dc25934726b426afc85631ca1065ca6e957ba00f1176a6a45b68a5e93274423e642451129ce83b7de439963c0c4e5d8b25f3b74fc053151610b4263725fe51423e886bed19c534165b4cc90fbd67256839b9371290af9853c948251c768e157041ac91fe6649bd1b1855dc417624b8ca0d798b1947c720b3414db56f01500fba30207322ede05612bb6505818a9a68538c9eb98f2b0a83dd38b765891f0d01f1db768d2355fc6b7a47414527c92ba104637072a72a6c0ce74772664e68660c9c0c28347315b17273a6846a79904a04b90a60c5b15973630209d9460365529bb72524404b3d9cacc013b0a7355a7eb2172d317cd356a07e5a341bab7c33db5a48fca4b1600443df6bf441983cc05125f6aa94f114a8c3ccea3f9c498c1126c072f27e97555456114f6bb3244c4698c3f6091864274a16bd82aaf0711eb8c4fd86a11b35b3b8b0528cefc253d7906b6b05382e37428253ebda5b48b6a068354381b24348dec73c279010bd32e41431d139a021a398f0e5c7fc1a98863f069b9d42a96b029455670caa89e0b867781f73fb7549392124485cb032a008d63812f832cab899a8d5d24b403e76d17d6ccb56c729e15abb2e04e32928c9b8971be6a4c70b15bee620eef375489347df7c622d9a803a86c2a9ec5a7a0554ff763912bcb7f57eb8b8633cf6ef39556162eadf8c285b61a53f4837c8c9ef48c3a58b3b6c31b8227c98df0b9057d452df2c258da8a1de1b99449c0054c48a0bc61a2336323367077cee252d366661904b12ea6215b3ba55aab06f60a517704a4046312731325df563cbed805e2c7b2a5848fa1cb97e17a2f926664c2947a2fdb56ed1b3c5e084a680073669b2b9e888ee010410acba461910795958e7c0c98294865cc700315e86a5c54912dc2affc2469244912d8180eab244332a00b7536c4cab62345872dc31ca3c0d2078d07beda4431f278aeaf2482cde53afc56352a894dfe3948fc14956917a4dc836f54369eacd4af052b4aa6b60af5e86bc868be275abd1118a83e5acfdcd4c92a3c2e2b13cce7101a9d303339f0b2dd4a282499579b803ede0b26c75eb8af340000000000000000000000000000000000000000000000000000005781f74024912ac52aead1be2a87e042830737220659467bd06128a096343d5fc975767ff083234b2979bb109a24a27bca17d170abd8d9e6ad3c3ba19e306bce
ciphertext: 5ab063c95a541d1be3fa0744e0db7e0ece17b6b47cca0fa41d08e7969fe87de63f319f80b9a31ff01e203de6e518e62e6133edd108e5a3e08d3f8ae0556cfd36b399dc1ebf3b229bc5013d06d7550512280bad2b27657d3ca0679d9fc62f0bf875dd0b326008a89b4f29e97211ee7ec75108a9e4a320a34daed15fd7ad394a1747e4e35bbe4f1118703c330aea81bef3e3883fd41c3efc3423ab46b553c7587894ad64db57bb0fe4d289d54c8ba78d40683bdf6330ccecbacd3f7f41541f1f2b1a7626d3969df6586b4214c02f921451f6adc04f5e8de1e3beda82e4aebc5e06abb33f4cd8a3b3b5741617b6a385739133cf5b77dd5607a5c8721d5b51c6c0b6df551a5b440082093f49f31910a04e4226b9ae6f41383672e0694bc4075207034e39c40668aa3174cfc8a75fb1a474485e9aff01f3572a5c7e4914e7519344c8ce7b81377d8c2af66bebc558359601b21beb984c1f00564d46585b4bf02c958c6b348642be25119b12f34a6e5755588f649837ba53c0efaa4c6c95d109a4ce1f761c1dcecb84cce8376cb1c4e34ff932408ccd2d06f20c5397f6277bf9c3234b20cedd45afecb7e87793d85af15909546c6ee41987f36d85865c8c1e281e13d9575abb9a9f215c08d89420535f73643dc584707deb7d5275252e862393fb6493f9e126c651b7981f26af8daf978153fa4476d615183bf147629fe36de7cceaa670dab930ba8a684b0bee24b55961ea556123b34e29491704d2122e46bed0f6fd50601e13a5d46c907b915f3b8e695e0bbf474aab6e082d156e79e59572731b48338892f2268dcbb8fc21cfd537979278ceb210fe3efd052365fa249c97e8e596ae6225839e5b8b296770f3b42240b8727a0a730534d0f42f8c6ef148fc04e4285e1aecf060c3666fc17a1ff794f584b26b0b1c41f0fcca249935cd411a151932b09402016a99832850b3f56c4846145738f709f5e11e28a90d9137e4e43f03dd1ddb6565c67c2a138aca59e8aebcfa61984bc7ac13a60ddd2c1f0fa84fcf9264ad5049c888b9f555e024f0fa685474e083025da168e3b9c4ad91f074e7e711f84bb808604114e09d1ceb83b697cc0f045b5089b0bf7381ff2efc08e7316ddb7eb7be47a1d82cf533ea898e668f0da124d2e87fef2b558f877b50b13a08641c74e2726b19fa7c0f33ab213f403c328ea60d08c07155ca0c19bb75f7f6716de89e34c20f9d15ba8aebcb98e9b6461477f56f9c65ea7e8744a4d7306e216f806ea8f9f1dc45781c1adba44319031fb9e81c6d33bb317d959bc53a677270f13d96da19833965aea9a18172f6f975bc4d03036b1239e7c315ecacec35cc0f788be1220c0497844fe7c989fff5ef7fcdf89c261a0fed3915cbfae94b1fba22827daaaaa0f968f1ac71e9772aed587d607d5d3f57c1500b6e08760e0b971c1999d01553bf87f55fbad96ce61d0750d75180623543f40e5b0cee74bb429edbed1b4c2a3e1aab86c8dc7381afb0b9e7d4151a3f76b7dec4199b97304d7b3845788e19126e
result: pass
shared_secret: b4b4634ad37852e19175ccfb5eca50093291da8f76b86be7511379188bc20d92
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: 078bc69561af0cc77acc291fcb063e1d7c82bdd7cc31d5b44d1aa746e261f2a592d4aa9165c2c3755aa457b886cdd55840767f4fa0b19e45410872cb1db3b8b5829c4ce9b2a8969330cb5bba2397119310fa072b7053b35fb135d04977b9ab4766c4c1ecd9695957473f10c679d71d2f6b57db2ab0726022bfeb10b61807d35447a141255bf5b3d0e3bbf5cc3ae74932d87268e172978d78b99daabcb16b44bd578f6dac130c2528fbc89ffa94b48e6785293023e2605a8533a5ac17c15f34b1e30501729a78d3b8ac6e4a329e1006e0c0735c737283856d7cc7663cdaa1610b1045b7423ca8ccb59ca6b1c482dc02ba117c17588809ef8506f09a7162720142e397c6ac0f8fdb02e4c1c557050af941ae8165ae01d9228f767ef1ac3d72f27cf9a2282a6c379a669d01cc0a6c560b21169557b88771008dad62641f435e0780234e86c1ead05f14c0ad68b6b1041492a166bc4a278b0d352129556d55f37ef8969b596c5e41f8597878c8c6c83de675019c022314215eac667a7b559146478a4a5634ff193f6b83673072643efa59c27650fec168ff17109577083bfa8493f38301528f27681405693345e523ea4398055606d4ccad9df967fe59428ca7502f046506756a6b9a78182383db4baf05014fbb20afaf148456126fa393abfc480edc92465d93aaa158c2a8493882b24c564b607cccb2c8f6cbb43abd722c74c2c63230946acc091c48b865cdb33edb712c670648b07c06691687685218ba48648fa3054ae7a6a663aca6aa4e66506516100c8f2caf9c0645f2554c10c480e798b9c96756e42cc8a7f626c2759d21555342548e0490420df3a8124b0566b1804933b68225359cf66caa599c55573b70d488d16185496216cc09090de382d570795efa569aa5bfa8f4a60665cd30d63bb36cc5ac050310ba9bbe4b3af2f9400296bd344cb72bb623c757366ef1369c968578eba52a092dfef34aadf552a63b1495a5b78168cf6e58b218a3ae64310d16734d5e72b2036bcc001ca07533085548809bf114a092225aec9cce6950a953773ee37ad3467bd5ea0b4cc4c6b0695a774781ce17004cd48e36116776db19565367c92a94488ccbf4ca3c3960524d1b13d6f77399ac625de5a2d09954cf867011f79bb4c3682cd40f133a9d67778a24d7cf1a5b71b7b81dfe335d0fc392a8b12b234950ab79cac94776ad1b713e99b0f394aedce739a15334f19042f4861e739c839ce07da145808260b159625b5a742258779440953c743c591659b9d982aa7da028c7eac4390b47b243ba23e8ae4fd9c98042a0c2d25a6688c9ec774cd7e95899fb7f081035b0c4217c2903688ca7e4466e66ac4e3ca938fd58b4d6bb732a36aa8e097fd75976d1200d61a5c988c12702698b1cfcbd93157d3d1c6e76d316b00b4e462588bbf3c480d8374df3cf66a16f9dd2ab721954e02a9f8eea4380c381da230f10c2c7dec02b057177e157cbd5304ab1d8160a323fd5892fe1649c2e270dbd3777035912dc0802f4d18a56356b52946f30c516838028f7f39cc22466ed277a5adb6864972e1063b1af0709dfd60136b16a3d6c863a68895677c488eb1d879a69a5341a695212066ab848609cbe3317b0abba905c1559715f25f720b7b745a52332355154e60577e598c754b6346b335b0195ac305268bae78bb4617807ca4666738ca81515bb041d43a4188003c52ac4ae4b3808d8c755d3e99d00537249d39d4cc02ed9f98ed4106895666c47538f79e30f5104adab1540a1fc58d1a857a1a4611257be37e0327491aa4b543aa6322ef7816a5c9a55eb3bc8604b15540b62c3405b861a84218211c20bc3d35a8a506b0153306fa98b9488a7841d85197c170f84c380098077e42cafdf1913df369f37f3291ec47289710c57f152b74572c23324f83618fd281f5e41976e77097a570a991b3bc623ad6331a1bb34673b1c328319758ed731ca2981b50a5a2cf8c66d31b10e88c95ffc27c3b6aabe8b207e6cb4373464b1b83f4a5a9806449bf7fb622360bf9f098b56729c5738191d57492b377ca8f989a87922a7368d724b07b7e36133620fa0735d60f5be8b51c19ed1655de5108681cb27273d511c643b7867516c2982a74f62e4cb759bb1f5f0808cc90e1baab60365722293bb07841803076504d00e6fbaae853749fc322e3458810ea41d832b35bf05a10e62a4ff8317b506b9af7216c445663c9061cc62914b0b72b5989d7d9c2b761c2fc5a28b5839bee5596c0de25c10a15776447e17770edb666249a2310962152059c5ed5738741a29e899072427891fb53606ab8b5dd06c005d239adb7bc368b10b74508c45c4aca726fe59c7729cc1ad617236e1b75c760e47815df33297c084429ca371c16c5761c9a23ebbcc2cb43ae9734ba9495d5a86a89e75aef50b9e73470d8d9974cf27a961c0cb2c180ff36140818b005f05afaabc86d8b8bf5c2a62f0632ebeca0c9c567514c9311ba6216fb13f1603c77656cced520d977ac75031044c8790d1b4c97dd38b2aa43dd8808a79e406f8e01503db8f7b51cc1e4265ee830461f41cec398251ea60d2c573ec59b4d28b09dc9446bb972f6d134e2e192e987153b39538e1f631bd81b2e65c2c5c68a96d1b78360889efa4c692b7cc374160e8dc485f47a676d77706e047d3e717386bb49cd942e4c05374b3a1cca148535a3ff1085102f4a7077b5f9c7b1a9ed651edb32691037f9388b672a662bc247beed215d51b414d3530c6b0631999663fd7c0e5da7e411c32c506476fd08a09d499ba3c27bbf6a804cc7e8be5c1f3f97d7aac085dbb3bd1076a69db89bc990efe59b00ca943ef8560642176e926af342b48e8002f6d1aa99b58cd013b03e0d285455786b54a4be3c581419730081361c04697b1b2c07df068621213c8ca6554b5982d5a1aaa113ed9343a56101aec68b838a37ef2c8a15d0504c672b278556b40c766c2066ac995caa32676da182545773881545cd58b71d3d7a02a209bc7407f420a830513b9d9d6c93c56571e42c8bf154afa060667a46d13cc542429c9d1a35be012cd3c9abc2bb7484fc89a4a83a20f7c2bb088793dab732ff370cbab614aa851fb77ce176b8f806c4f2e6068235b93d08c39e96badb37a457e8a790b2b8ef00b0b9e941592373fd2caa3ec3477c6c440d0daa755ac0ad2285754ac64b0852086112b0c9794f1657916fc173209a40425afc9b19946c529ca95154f24ca3cda5f9547c429836c377123c6ec0000000000000000000000000000000000000000000000000000006f8e54b993cf2cd10ba4e61693d9aad8943af37178908ab532712df5dec4b908d48790195fff2c19f221b7cd8637576cec18c29a4a51cd07c82eed4974c36e8c
ciphertext: 925fde875ae198cfea88c4eeb3a0091897e25a793672df1de3f24ab4fd3edb2cad0b07e698f35dc97bfd1d551fcace3282c8c3d8131857d96ee9986da7b79a02ddc6cfc9fb7f2b809a8e5511b1c1256dbab33e7606d8a5fc048b36f6ee53c7f556efadf94494595a549ca260ac9c45bf9962bf406610ca58dc286a9eeccc447a767b6db3ab009f5848558acea4503de747d72d43218babd6f68c091b4581f4e41f2e850047f5f543a02407e7331202b0eac7bed180061bb53f4dd3504ccbd3f298d96b43bbaf8f0c2545be54c59830e1f343ca88bb9c6812c66bfbb59a6d68298985767a73d34fa69b52cea98d95d8305f97c4d4fd643b56c60fe31e3c2ee7e938ac2e4a5da2297e670931c1dea5fcbe9cf118c62a76a461495f10f640fb416ff7bc2478c0e8a1356bb840345f3d43476bc4cd990eb7f7cde7ccb96452d055397ee402be2ce395a29a4f4061ec3d85b99f086341441022435b636028a1a04c5d787abe1c24a5a55653b7063b1cacdaee40ae0de77b4034b9ac0e860a90c8834b352c71e353c02b1f46b135fa68fa7a5c1c719896987d79f3174b8d0b0c28ed64cf9f2907924497e35bf519d519a9199a4dd68025992c6f466604bb2ec3d7b13eba76e4803fb73bb125b83413998ae86691a0b35c0054e1418898f435ab26cc12a12fd4dcfa9e80887af7ebb6c856a7fc010cfcaef9e1c5a4dc24a91a622fb7307521faff0b8e8e966b7b6ae849ccc75d31c8d700a3b6a9c3f646b2a88d1e9391c2ddc6c9ff15db961874c87dd94bf0165cfc8f719806539a8beb8e28350610461b1252872f0f3ac273b3366abd78d9fe8868dca1a5eecb683ab8b50ced8cf4a5ed3b721e0fe6b205fb191985ca745ff5dae0010493f8296b6586e1c96f7f23fcb4ac4dda15eab811107c977aa0a16439b06986a9027640cf7a01051934dfc758215d22c6f06866d5b871dfdb6ed240a73dfde43f7f89c0ce6909b54b0a633a25f7253c10906166f81ae91a1419028d6182c1f277dc7872b824c7a5a22bc7afc02afeaa9ba4c271ee68882397e6cec34a955cfc672f4e6f5ed870a35ebce97f34542cf0a162938c91922230ee3fe9ed9a166a790ccf450b80cb5f483c3c6ae5b2e52e907824b45e69e5ab38226cbd6519de995e1a62a910fd45ed189540e0b4058ff01edbc6ba4eebd58d55c0e33702de299eb53d6518254b8471f282779533eaaef90602e52373be8b519c56a2f6fac0953c0f84135715c5674e45d15804fb94d9e0525ab493aa625fbf73ebdf74f0a1246e1eb0e4e2e261b24ab81d8da6e1770634c747542450cf0a2af23507f8b6766a16dbb2e67b2c94859228b91eec6c59f5a271902b340320412ae947398ad102073f8b9b8c021f81f786622c3483e61f812aa76232e6f9453eae044c5e918e6e4e0e18a78efaf6cb36f7b75929d0036c44edf928d6efe1ddc87b96288c7c624655d302b98865978ed7bc779c800e6113a0484dd225aef29796c8ba300b3f48dd566fd877dfeb5d25f96da5d07e643c5d
result: pass
shared_secret: d4b9a0f77a52d4f8b9c95951257348d1931725c27eede694ecc09204a931daf7
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: cc4a14e75a6b1bf87f11a240424645dee23657db9819ac274780c2d7d8ac64f2cb82530b40a078791a2ae70aba868253bdc3045b6254c4e29024894cd13723edc7461a37403609b48f79b8e8b1018981bca9f68031dcaf87528a6b065d8cb83c142ba20d68a728a3866ca88e6836cab209ab49bb234312916e432fa51152c763a62cc53da61480691b07a073be74aa6c2b88468bca8302a23d1d6405ddf4aec2f88ab055b18e2b1873862af6539ca83b1c270b6a563cbc7a220cdc8106e6e5595d63a26c0cb86ff11b48066721634b43b361b57a5b4ddb2967d232d34cb750026b362cbd20188260c6a856e9493ae09c462bc4c8663c7903112488b06b2a996dc6668e382e9cdc93e52a1a368b07d8388c9531afff0cc4c07ab423bac717dcc888e213e3a75d69a633f49745bab10f62592f59d53ef19b6a62f0b24216aaed9c91203b7ee65b9d097cc1e2676deeeb576ceb4fa4a867ab7310076a912a41292c658e8f75a98603612558352a5b7beb404fd2bb6de18c7ac838464b6399182536509624e1e25a7821b71edc57c35541cd115ec52c13a739c3de231ada741274272383cc78bc9869d37282f5980209543c92b76ddf99c3d45cb7409b5e44599b75412d8bd122460905c250a94dd4052c0b0a91c9a906aa3652180fba9212046b4f7ad14f7c304780d553f19487b8b7413de732ba1296b41a2d94983d4be93e540a4a4137a030629e97fa640c21ba5b7b5537a03a2a958ec3a888590a5c14a904dd74c83631264644cc6689a245f833530124f7d10e2596a8be227f270941faa75300bd731c145f781cce52247418595ef67c94a170676cda269e51c7ddbc63b6765b010aa061cc576696c84345c35c491d3e4626efc8b73dfcb481c11bbf8c79c6a3aa4e54c43a44141f5c35932486320567ce37adaf5241bfd8c44ec140d30823b58223b02742f3e2bf5864756d528ea36348c1c2293d8ca050b6307d71a20a036e0060697b58a0ada53eee5a6990a9cfe283436cd36a02dcb1a2b7200a267c3f133ea6423bc001baeca953515214e2766f066cae531212dd3551e22bbb1c705f21753ab60a70f364bf1949901d9a0415a36567614c1aba2dacf2c5435b4ee66193c5e461596719790aa792d5a09ac474343509ee36ca048751bd4b0c644b2b039b1320b2294df814b419c3ac55541be5cf4b93593aa4c099142de9e13699a40709d70070aba9227b6c14f216d434c9bc16112b8b4237f838340a5c317a618a91170709bae6a7c13cf96851f72a8761736c452df27758afa4b02fd55b3493b1bbf96dfc45ac743718978b7de8a017eca45dea633dbc417f856781c856c87516429127c6a3d335f162ace0982235ac79ba0ba68edbc1eafb9ed7a3597ca7a612a9bf3ef2b0d1d7c238e98714a434b8b08b35e3885e007501f9bc06e841921521d47999db3ac3937468a54b95b57a2bbe34aeb48ba57f0744021bc684456a8ed413b9192057eb77a5502dbc89c5964c0383b4c9034396da209279199ab5830abe9386b2e811c222a6ccb0cb23732a95676fd5c0376505943ef8bd67a95defe0af7cac395a743bdc3119b1a74771343bad21c53ec80cafd7548ae310293027d62960038c5d80656805b427d0b9167abb3697444af88a0f3eb48bf658be44f36b01233902291860215084ec7bb3e170e517c65c623ecf4a488f69923f9045ea18334d5c8ee847381b5a8903a6233796b1def36e46d343cd3547f4a757d82c262278432bd555fb5430e7f936affb453ac1a031c70cb1b3a8f3762dbe226461501d13d10052fb621be30b8ce63ce93591979863816397f0d198a6c534b55213d778ae7bb1a20ef1809ec37b08382c43e82b4a758458d7758d23a350538b3e524d27c9074d1cc4e3e1a17a6b06fd71178c5b18803b1c439b9e903a0d63018d2f765fa7426a0684793ea789c30435657b9aed58886cb8788e14426ea0295da18293024eb1a39eb99a20619a3e2db48a93eb90dbf42b84fbcec1f0b9571946b6f150ef5a672686a30e52be2d536bf3664550f60c99a89b81f3c911784d8a371ebea0b97ff50e2af68f822a72e9a76cf473bcc1cb81fe2a03051771b1c91f1e1a444ab6119c0a83b25a434fd598bc767315881aef9cb4d4c51ceadbb3b1a1142e0b87d5826b161233ce253d2adc9a00bd00e3cc21fff09abd919b54e09ba6b505601a358e50593dfa117eb2b8d7458745a25e7c7321cda0c432aa5bb41aab60eb3dc7e03ce4017b245809a534c3dfa49e97f4474689901e814a97fc0892ca04d0c00e3dfc836b36bbf74256e77525a031160fb3bf8ac31502c049d0a264140104c7488e36a46d23a76f4535b5902677cb98a5abec57b9357b0cb3b36b68349b273a2f8396e6c8594b4a32f0aa8a622378b3ca0426f44443942c02162907b2651ac2168fd1279b040192716bb584211df4ba36cb363b8c3adc39b410977ae3cac26c21470426837a43b821f65d8ee1950c87b4765a034aba1a35579f4148b8c2f39949812cf9d850d5e25be7713ce62ba31366737c03ad45f23e9b226d1835c5ab01c081063dc193630d72821cfa2a56d16108c40ffc483177d075b6a7a1bbf5cac7da0834d755acd10b9b9850a7c97d90a1061ce94efa4b0c0707339dbc7f160a45eeec022815a4494334254c08ade388c07c34e3a07e51ea60fdeb9b20b4b9afdc6c3c2b63e872aac9b2a90b798bc2dc8d585c69c1b33c1d51372c583e835b9ed561c218a2968c044051f8a969a7b2db6a7031d20cc9e024bbaab4385a3ae13ca264c25f6c5b4170b5c0da13044664a10f335ae9045bd6319abe139bb2b8b635bb06e2f48427e256a16a0f71f119230a9acfb19f0fe07c71828063f42a844a5c703aab9a844f689944ead511d8c97127d99429fc87ede190e0fa002261494076b7a10496dbe12919f585685733ae780eab3ac168287aae3842cfb637a94483f68170f6a3092d51b82ef10496a6374572a527aa7a7d1a99315953f625842ec0bc8851180b98cbe411453027c9b8a4a07fc3bbe32b897fc09e5e65a0457556a8b28e5b7c8b28db24e5431893953c912c195ca52db5d125c3f595f2ea75a63b6c83c8cbca257824ac60ce16bb5be02b30488974a22a66d37b19531e3cf17b59bb43d738cea25326dbd6355243ceff3caae98446927351ff623260472f8c7a715016ca5480af5cecc001c6b65f41221b16bfa61863e225709775b5e6393e4b71920c0c539c6bc5ec5c609466000000000000000000000000000000000000000000000000000000313af29c47d66acaecdafe1b91b95ddce43b0cd52be1d1a84428587728f01522a9e4a0d3487b6714e18bcc9d1daeb3127164328a19d5cf60822f3fd37a24bbed
ciphertext: 7c06bbeca8b58423e2ad420ec36064ed42c881e3655668f8865a2d643ecd1a4eecf915b6c64b37c98947f06c3ccc8e00bbd16017c246db88cc83f12c887aaad7db61b4d567c285841689169c3f928f1d178a0ddae50d8c46cfd95258667d6239c300595738defd2e806637ca46baa4c6c7b97f1a9b47d53cba9ffe074f88d104c4971d250d085b1800fcbd91584d8cc48e145fc81438290d74765e7ee8c1605e8048b37b9d22b050791fe008b9b84b7f23b0f49955e32c0eef78d7a3a0b2effe8b37d124e19d4cb6f6914204598a525239d9baa116e1c9c39c47f9f37f965941b2aef8519782c65f3ad3a6509d1e31e7efb67db21911e4edeb1f7e9c37b3f852c81d63a95e4775e3f2a8ff315a214680adf44d290e42ebab8ca95bf471140b9d7e03f5e9f97864289a0ae8c9a105e00409f714e413b69be366303b4a138ed51264ab0e5cca5f6dc9387c6608109e8859893efa3bc7384e9f418468b1078807dadb768e254094039d1b807d67353c8e0b5a03d28b8e41ffa0eb3ce0837a132144597908f7a059a097b79a1bac323757324e907b445d064e25c378d2069e7c5d671036871e4fe36705747635e40c6e835319e3ff81714cacc44515d671b703c5581dc76afca0b881f37c1ffc93f2e4afab1e8ac776ca883f3adf7f9ab99396f7e19541c26342a7d5618958523b81871326c357ad84ccc6d3574d97cbd875524e7b08a102263d80f318a48e510c22126568f76936c904c231700ad042d73137eec741c827a082de4a45d296745c55b8367719dd08b8295e38d8d3894b9f8e2f9b483b266e1fc71d6374353ca7d9ed1c6b73ab5a42f6abff7b2ba8fd484d1ae6928b5ea92ea3577be01dc1e88abcd0886eb771dca4d36e91c45bca4807c89736b7d6a927cf64b22c5f323077f5488f6044976f310b4b99f7d486335dcca60571157ac0e480a4dba79a826b4bac3dcb7327a33b16381eb41e1d39915e91a58750ceb71098ec7f1a2d7e44d4bab75bb7482eec277df206502c497eaa345109a145a4da6bed1900b680ad12fb028d33563bfb204ecf66e6ead587c5fe27f8a2eb0e27471925ea0f35eb9d5e53ef801eba3acaaa7790b105eb6128ace992668181c1d7cf203afdccdfefbac67dbd97cad05d499239df84e4cf7372117932c973957e5c70a8520f822be430758990296877df62069d818768513d14df0568be8e63e123bdde35036dcc69a98197f52dfbaae5e5e0cee4a48c67fdda605dad8a27651625c2b35e81dfcacd2a41a6d17f6d7067a67faf2479b3868673b248270f4a2d8ee26de9c787ce966ecf186c1401ad9d3bbf2c43b1d5de32bdd77f5433f4325427254a13985d733ab0863e62a4f3d484ab3f5d3b88f23049079143b058babffc8367cebdd9d2468d7af782979a3ef12841370da6ef2db03679e6bca0db72166c361adfbfc02234119abaf98d4fea8ddc6e8490c2fb5a1be4806a61bc7b36884cf4631cfd53138a23fdda11e597aed323748314282672473a1819ef2b9488f6744544ad
result: pass
shared_secret: c9d0cf3edb1172344364afec3615ba98477ce9316f92ca46ca5f42b73553a9f5
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: cca22002e0b84e0c0fa98c902c2a30f0d9303a411db91a26576834d4f1645c181bba750c42ab6bcf401739f83fe2a4a3aa1a3f5917418003aed863875fc044dbc99c70b27758389fdd3cce51d5a13b21afe1219f0bab5dc3b15952591e6f80068b30870ed644de082476e7b32d3a531ff8631914c7a5c106a5acbf8672ab4a304afb71b1672cb281438f0fdb1db0f52948e8b0a1422ba10ac5e0a480e87bb844072e7a134dcce36f27274775fc6a8bc611b2a33cf85a4820e18b47b24188030fcaaba998d84a68424c07f4503abb553ec33b4be2af3557aae2797649da014dd0264d00ce74431e46f8969276b24b359c6750c5bc15a6318c2d06898ec5f473380a68302a91eb562fe4f10596012e5efa83f4c55a19912978a6583e4a884e36af1b9367e69ab0566c3cd8c34eaea615f49c094bcbc63d52a21d74c02462cb0bb7c77cbaa03df988b60cba880771a7c179315a9f6ebc6e9b8c90bbf17f737508b1691ef1952363e9499b5007a9c84838c2a149478e4be76c0368a8220b9a3ac68ef6560dba6b3f68257b6719551d83c38f73654fb392af0c1c2517851fc160c343cf826aca2c5614726c774c758e1abaa9ac04ae0742799060970909cbc2f78ca739c71bf6528f0695ea6175a4ac13555c3bcb9920bca3a37d363ba622666e54a4e779cad5059612792d610257a689975fd664dc5081d5ac4586c60e99b9a2a17ac612e5a794ca4dc097a71f72bce02b4907d69d801a22fd7b88f9e4ab284076037a0f6ac803bd7b243b835e51873919d3b77de041bbdb9c2917338f0c42a54ba6f5539d60e827387a9e7c156155d693b85701b53278139b29858785cb59788ed981d77556d27390285bc3f9408cbdc717895815d31641d0c31f2d911515f36743c40f4f3517432c620892149b518fecc80cd2d14c99730e0c940dec155930dcb5ef861b7c80b55c2223f7066b625c9fe5f0cb04f0bcb880119de142ce511affc01d483ac8db8b73e504b242315533d9c02cb64d15445fe32bb0c8e19383f82854981a9ea465b05c77cfd66d97a2b262bb37398cb4654a0fc8146c00b7608f061a216b9becec17f686b93d88309a7ac04c2447030b41ebc6a95fc52466d36dfd461bb046172f3b83fd10bf79c281202a60aed8467748a986100b97742c8d70c8de523c1d700489c391096c1b92654064cb7e35d7b25f29818ff39fa523c88bd69b8cf41689a414288c492f2a83f7b34a4d95770e6144b7731057c73a077a471e7b378fa48464c426ce5a6566e7c862131ebd5a1b3df013641a878fd702d167ae3f369361666514d98f325679c22aaddb56406e148e744960ee1395866acbe095542a6836571959a80238d037260fa053a52cbbc2cbc035e78fa9c306ebcb61ce33422584009271835ac3845524794f18bd7e1b4c034832fe68ba24a162815404f65c0af0944c9789b1d92767268c801a0444fff50399b3a192131e965523bbc2c75c286c96450c3f0733458bad7831205b1b4841a617626b4bee232cd1f220edf53b59bc213a055d956591fc3518a1974582f79a66dc8892ba71ccf7a5fae1c01841428525c32dd2b433445118559cb5447e3c851a0cb498cf99c2d359999fa3967dd722a23522b0d8cb522a67d63a75af305c05f3659bc496f1c47e410582a0e58bbba80751bb2f5ab71414051627f46a78f9708e3139f8950b999378df4709a08b9b511982ab1b2cc4d51d177578ef263c8e12752f914733023d9e8068d4fc1aac34106fa72197f6b4e4bb26ab29ab64d7c848f98ef5557ec2b35edea70b67c084193921d8cb52e132a24372be7046aa2af66696007e2e0830df1c7b4396bcc8f27aca46932c463b49db0ed88882f3a45901a4b96ee3b74e78afb8dbae7bc653be895179f208c27c6ecd60c26e54152aecbc13bb5ece39840574c56fb39fd2385c76d62c59a41b3311702d5a99e366467b6c4f6c252a95db32e5096e61d1ba872924d358b346dc099a485c3df72a94e437a82a6cd778888995c473c203e091309ba42511950c19db3acbc5987259bea952b5a549839f197d7bf64ca0772cc1dc89572a0e04690fe651a79ffb3dc07388c30c06711c6b25572bbc83ba868a379d54c6439754bcd67c9b0364ab3790967a062948084ab33a80ac5971fa99830aa7d1e9263e7087af67ab6a83ab34f405dbd72b3fe46e9f2114e26cc6643b6d3adb9de63090394213e72b64ecbb2242266139579ea9cab2e51868ef82ababaac38e7ca0b9554d665365dd8b0b58f3020cc9218b866955f54d9f7b9af9634ab995a0b5e234fcc78cd1594e1cb8a845ca0cdbc82e3fbb35414c53423b76875ab267a702d51710149061e7655a0168695053aa61b990fa9439883640e7600345033ca90678925b1d632962deaa0ef5642b870610be3387eda90cf608254dc2b000c06632331680e12e9b277597d07633a31f6445318ac7b9cc1b087cb58bddd30a07ea6e1b1429950b7e7efb1a6b88b037c92cf987c904268ce39cba4bd3c163f5a8bdb9698488152a18b02bc98a83fb6c28a55a018b48979660ad5b42281b8745a4bdcb02cabd16735ab1523916adcb031e34ccbf4c50bf61bb7d562804d4104d3f6ac183f447e6608acb0bc40a34ada4897e9a91c542571877931864b612cec01c88010cbe039d42540835422f5900c944c7025ba3365543536d093a68c27abe1175bc227faa590f8fb8ca9ab1a87366574422379fd8659fe5bb5ec76e179666adebcedc7b54f1aa9388b2907a4ba5c48441ad90499c64a57768631d4a961d88976c816adb897da7715a100c75099cc122f3b1df183385673a3bbc98cbb0ccb0b090b3517993815e3f6b26b984bdda32c11947b2fa5411004c2c41f2a646036b86bba618e72be7f97ec6369af5ca2ab2dc9493d9078a0c8598841385205177c80a3be42a31d1166b02cd1dd2871148033c794242962e8645ae2e4867a3e5c74f71a1d978379ad45f7fa5c70066cbfc4cbfbe05cf23612b2dea551cc52dd90a8468ec771ff071371544e96400e288a82e9c9eefe807d6f4903ac567741abeaec9707533b38dd8c4366bb33cf86f77272478e43a2d8061293332c8d805a4516238d5ad1934a9683655674aa6b6d91610d4c82e966d74c41dfe7ac18e993c22d59b2d286a0b5272cd44988510b9b342405757a25731729e934c58c601f5c311a244a24dbcc772088a20dac4c8410167304fda18445f6c6126b9645d4042d6033419d246968848e1f5000000000000000000000000000000000000000000000000000000ed43f6cfc5464d2f56a817a3dc74b5ab404164947d8c0792f6bc9bc00bb4d20253f53a49ff45b0ae588d417a63a599670cd391c5e9885c972593d09350bd7523
ciphertext: 83ea5ed982570cd981b7430de924469d4e2faba68e03261a74f5114ab8c448376cfcd1b9cb3e72bb031bf0fefe772bc40888abc6acffc1d335d46d267acde2cb89cf1b3c67a139796d6a5763805d5edcebb81070b44ffe021b6c2b3c6c3d5dfb6d9e546930223ab0139990c6c5d6257520fe394a3aa30c6a71d47f415ac86b68eb8c83b131a3c5cbf051971fef5ef3bda355d3868e71ed8a0e2c6de8a759bc0c9e760277cc2c04c783d29d1ad3d3385accb85cc88c39bc8348f84dd8c714c5feda50b0770414a333136d6678be6ccbc5df488bafdcade883fbb310c99cc648493aed72680fe1e43c0cf523d3dd06417d29dd97c98ce53089505d36a476c0ae6d89b165c3ff6b2c62ba954fb81ac5782ae648a6802bc057c64fabd3726559ba79de9c144aaa525f6a840ed55abf21b37231c6c4cbb0110fdbcd0004f6f4974ec644c33a8aea34ef4a0a146f7502650c3def5a313d2f309cb428880502d3bdf39196a99bee296f9231d87972efd1159d3cf59bea05f0d0373a0e218ee5e0528e1ac7132440980d1153b9423bb2e099d05fbc8241ec1f316bf0add575a69982f546e99c64457c12ac83951ad46a5f024f6a61c91b7d3853ba1fa41d5a95f6ca811610ba3f32addf011ea4091ef217cdd126ec5e45cc40ec6f1292602b16c02718419646370e5b2c7c55c1128fc5d6c767cc75248b79e2379d40f91a8617e8a3db43c42cabb5cd39a7a7969147f30344c4b03de7034b12d8a1c3639697c97c4483e4191ca0fa81d8659f40e31b899b4ef4610644b1314ab2ef14b8dd8dc0082826fe65dc17211572cb14fa376f1b1784a00033c8dcddc44d6a1128a200eea668b6516ba42585cbb2e2be2a42148120013d0a9378ed7c185071fa8fdc09102164c63a665fd09c08d34104c9abb64e394b2e2a00dd834f7c7f5de16f6c02906ae37acc923dd76e530c78f2143396bfc371d14e6c48bec072b6b4e18eeae967456beb3f897a06eae17de174cf09be1435e691350632c0b1eac69dd66549c1d980fb147fa295ca6f21b5dc398e63a7c4263c75b55c85b4f38fbd7cc0fad84aba90dda1f2c9ca88d88905602096162486dba1ed0a8caa6b897c99e25934152a35fd0d476de09fb211abf36565af3744f3fb737247f5d8f172fbf438ed04422a6b3e17bdfe2cb0f09a1d57f1f1a113a768697f23d61ab288f15abc760feb0f5c5d4d5c0b1c891d3dad6089a3b7e54516b8f9755d38430312cf17b21efeeecbfd2719b62480225b9b3ee8940b1f1784ed5630d152635a1233acdd16e5489a9a15eafa7bec99aff25b18d9cac1e726c9e424773a7083f213cea53dcd310b0037aecbde1d584657f32cf548a6872c6f5a1a3a70d4db29ee3773291c94b00b5a596e1691f7752e246ca0960561cd233ec7d5f54496d34ba65b359a856315f02d16c990cdf3db2051b17bf283fed1b808ac79a9ce8250c806896bf75f2cfe76465c09360aba4c9688acea341fe755363abe41c0cba3ebad00c6c7bcc3f7ce091f87079f60094b92
result: pass
shared_secret: 4bb6a6b27596869efae3d411c69c593afff99b1a703ee1f4ff3e0e7e9756e75b
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
private_key: 16997ff80976d1506b23c012e387ac6ca0a792f7481ac3c9775317ee3ca5267bc7180ca884d28bad6b5a05b045f33a9b975c6c98908d670550b874ca70a77424e48bf097256434b9d9b96c8b8149f02ba5bde9b813eb2b60f20da4440b4cfb05716bbfd86255a1e82941d2816caa7253e7368a4bbf4bf546f40b1bafc65bb994c34f7337e82818021797a431cfc664699bc22b92561fe3d1cd6306b89a36380920abbb466477549d1bf14364221c10f51fc3f7240de4c99b3bb3eeb9ac1fe12bb7c97888e8386da4a341a0be8f78a7b7c49f2184376c3c3784289a6bd9b6a03a110c228f72939b86c7a87dab3e093c0ade693a0e5331c48b761b070476f55cc45ba1dda14dfde01a011776143a4d29d48b47b0c6cd2111bf18360a7438f384a28d772177f648773b961a86637c946d7981a6b9f571a4c29aad07220fe081f1f18700f3c99ef28e76819f8d7c4c43d754cea21180c43357f3430bcbce1fe8952c691cfe9a7483026386a479eee4025a838df5c563b9f5a1882a2d7209a68d231ee82260a7eb4fc157936deab52618cba32772fa1440fb675220f4610d749a5b3b142f31b404d94d2bd816cc4773ec83aa1445a37b361e52b10960827e94171dce3c12cec80a1ec65aa6f117fe937673a78cd7767dadd3cebe0217f13c903ca25d6a681116b206acb46949b18f671a63fd2581a6c0978738460cc51df3711dc1215dcf75525d30559ab6bc52e16fa513753454888189348f045aee8a32e98cb2dfd708e7d42818115e5c61711a0c43e85a13657aadc24b5b30a04a43cb97bafa433204c18536337758c0db6154d4fac670fa3af148b52f24aa731c31f98464ca9bc975e97fd665710ee2c56b024fb8d7c7f4a20cc9d510f8eac38f96129c97b17c890417a21465d05abca02754ac3614e964f1a24393d05ccf5cb9500852cc9231656ca899f3538df30984475209f84ae8b99983e844b06ba4cd8a9640a513cee439ae13ad57d3846aea4fa165b68c6c03c05c835bcc5a63d45cc5568aef94ae7798bf29aa7f38e275c902236e63872a274e4776cf1928c492036166d04eed9ca64aa16ebb4b11fc3ba802c6b249e4b53f90112b587d36c6bfb0733a2ee3003419026a10a4c54c2be294b2031a48fe895c2c9920b3772f127338a865a82c3262dabac113c235d433b90d401f5557bb1bc68359020f75742c2008c2bc8862416910f53772a55376ef05a5eca853eb1ba5ef841f243b8d98b11e94483ad7e72fd7360a3641159e481ca50971a6e8aee73a0d4f24b25430ccc0997c631308fe2aaefcf79af5d2045932043d95933919b21ef87865b8550742a513d67af756c5958465f582983a777e9032ac43164e552358861a0ebc458e55865fc3545fd01b0e7565877ed3229f8267369c319abbb017a87ca662c635519ff418682af39ba387aa38ec37396b4d6ab505219314f4448d0f572f4330cf33fa1369872649c922bcd228c294b3213a216e59752072b8e026700ea63061855be3d6037c0cabe0c21f5be948ee4b18dd935ad358a5885a0331db2e496995bd47c3ff2b679e0abafc02804b6117271a2b00e33bc06250fb30ae2036716d30a50aa07e45f244e1f0100d749359b479b444b510d9b6d89b7001b237f4a34c57509f69208c7e6b956144bedc8b2d19b12c1baa725dd106f5418ed943370050808ed2636fa634add059541a7a8c7976b0990e59c20c00343d1c37bc3ab587e312991bb88a74227651b340346c58bbb174ac18c204f37445681bc5905354d834f86016d0921219fb467d829daf24901815666d664b8c4aae307485cb95885b7cb9125a14d4d988d3a42c0816ba7ef14de9b622e08871988b8c02d857626b65065551d5bcc81112384f979cd8d2b9ecb55c6afaa700e92e3ecbb285c01112a19cbdb90b8af135b235914c901e2314902a43c939d065481128f83ac801dc2fa69c912f2b69189736d72414df12646680c9c858a9afaa28b994531960b0f2b82fc6b9c6f10706930786ab5c6b0da61ae813cdb7387c27324499b111c6ca5767056070e608cf421af52cb45a842da82560dd86acf45a7e70245e0b535f7559a9fceb9369c44032c09302438cb4670925c7a831d52f083a7919e575be844d9e6a009957c15e6c5f84f050cc4801561876f9f483ded505b3c77a4a97788358801f012b59d716fed55975f8abd3464420d849d89c16dd2a95c372cf631a93a8897ddda2a038070adc2a97b5538778c0215cea399deb8279b2ade6c5ab84bbc8c6e181c091b7002a4d5f395bb60c817e03966b63ba76e88fb05b79d126ab0975c995b5bb2ae6550af78d80b96af40c9514f945d72b0c9602412242c81b60b2df97999fbbaec0404056195879535041231803aa7cf064b5fdfc8b86344d65eb30e52cc0d5b86947b8051ea93008d789914493b58abbd5395b657560f5823c387574db554118d06b26ba14b9660b4b390f8b828ba8a852870cba24a114a68094cf0168b721af8f0998e599b5db2135a3e9360b5754dd49155eea830f0035c2c116dbc9039cf69034c505ed998f8460a170eb5f09786d902664c8135ad77101d0b802248b6f3165a847b5c989131d7ee3135cbcb48b3cabfd100074c00f2e7bc85d4c84bec8980a6920e6f318a4bc805900b548fc7d98316c1b3c3b49f6c5d90595ff7a7b56465385620544aa3f39114e53581e851849726023d953b5df56b87be98854b253a39297f060449fc1c02725c3442a4ed8624f7f6abf3854cf04166b24c3b5a38358bae933ee4777df09720415314b152efc0b175b664c0c0a3521cac1817314d1e69fe03b351fe211c4c44639622a73a4547ef52d46b033aa52a79182baf49a8808fb259c048a04cc03f8a1038e9112eb30965c797f90c277b3549df4f757526351bd1a100767b4bcfa7489c17cb181b707986b9af85e766aa1f99b08aa2a7bc8a385d294277cb00d705b4ce2583e61c16be2b18445d051d7f0cee51703db3162bdd328cf0b0b24a424bd830c6574091088ab746a291c737e8cd595d1b51f9646c7813a8991f89c168489d1a3b61a82466d98ac9de55b4d5aa020243e638328fedbc93d341e1fdc7eb861bba3783a57c86a7184aaa7d5051b7018f3f18b40b69fd7780ae9609194db70123801729c561e973dff3a7ea5ba9045b24e5fe5bc63ea858c687184a8276612c80ab600cc37699583b9ffa8c5a1b7934f3c12873522dd1c4f976b73121bb79766803d247de1dff18807000000000000000000000000000000000000000000000000000000c69860913068eb936405db039e82a2f7fec48a8ea570bd538dc9741a6aaadb02e366c059f5f26e6dfba8db203c5b27beca8fedd3de2664f6bd5c3e2ac9fb3891
ciphertext: d4e89c9a1b36b648551ac2180f2f59158514568358f66a6fadd88492a0e1c122d1d7806287eecbcc8e8e6a463dc1c909f13842f734b9eb5bf690291c9d5b7836de8f4a28b8242c21131c53ebda4002b329a1951f469168ce0199f0a1d2edcdf3e6566f9e638e5a1095025cdb591aeaed8bb115ca3a1f1e9a8e911b2b9d3838608a27e50018e9a99e65b04adab67a75db892676c28ff41f118286f0ad2f5b650baf9441470db659e262e64cbebb4e808b1e7cfde0ff5c1ffbe1336beb42155fd9cb1cef90f306f5aa2f121b30b4d6091b19f37243cc15df2a0a16c4b5f70ffba99456f535af0eb0df80771150ff28c7925da7293878699c00f5136c340d1d06460b0ca7223f37ca553be904ebb7a7f41daa8288aa244202247eb8c35b7bc6d1dc8b95c220319532dfed22dc5d0f2f77a4bba0f5ee599420a94c446d89e3e8532117bd8ed0f7d9cb1f0a58a92bbf30a9d7c16d5ebffe16f39f682c18a8fc2ec0a551370c0e3ea706259f52333f5e86a83fb60b9ee3776f08e3f85ae4ee66be8c653cbe25e316e6ad33415a13e5139f53480625f09f593a598d6fd864729362efc3d09f5b171b0eff76cf860c8fd80583bfcae3bd7535e0270d622c2c09886bf9fddff6dfd045fea3259d26f17500b6b1e0b5068dc06a510da4809fabd615221f672f6d1d220c22dc080c9dbd7544ccb3369deccb76287c77e1a2af0afe133cd19325e6a77a8bf96fae6dc0381bb303815df4de480a9f3f97f1baab7774d7d5d9eda6c5927692fa2277934b0ebd30b4e7785f0c61a44357f49adac4430fdff3af956904b789c2dc9bcf87eb4cf93c48256ae13e90a1bcd713f77446593837b81baa6fd7050455d69a16b429018390a47e6e881467b57a2cfb043ce5a8cb114c4bd916ffe353579b599994efae24ced2dcf1a2923a0d0d8e771e7c230d887e596b80e01d84c908ec9fe81270f12e2f9ba2d783b1200fdb106e9d340c21667b722564a0cb4603dbc2193d3b455e06cf8c1d8fdf3e7ebe16a47f0181407f66c214379a5f336545818782835f6be2e9ad89f180ae0747067cdaff1f3b9386debdf3f057cd02f6eb00ecd656838e2ee5bdb99d6260c0447707d747bb6ff33ed65c2b3e22074ff25a7a0933be3e9b51de95d99e02ed4204f5ed8a6ff864e2f04266c9392c6feada8805ad44dffd5abe8d4262ddf6d2b1b4099367927b0bc075cf1d1d802f2d10b6d31d7f8c48b043340cae34b5b7c2f1e9b5043a0c2a977c51ff038171f8c81f04b284b2ee262befb6a54bdec146b84dfa116542bd13123ea79e4a660e44f3d23a0ce35ae4eb7b45611f87ae836081742d3cae6c65a0f93514bfe118cbbe7011e2a9502b197ac4bf31fe17016e184657b8dcdd62a223d1bd88b98aa0bc200ca91e123fa956b3d804b2c0ea139f934124f8d0c3f4412d8effc554f8364b0f351a789cae775b241cd6aa6d15251cbd28f0f85fd4f2a48fb467444f2f759ab6048d33c27832cccf9cc45fffaaa17a6f5e4b766f861529cb1a0641b6d3854c11
result: pass
+10 -10
View File
@@ -1769,70 +1769,70 @@ result: pass
ciphertext: bb7e0dca6eca3ef57e945d921c2f80875556f7786d6bcca1312f86b3bea6d0f0a73f7d6036a7c38c62d4e356961ec6a28d8026a2d915d9721ef815147fc09ca65a3394aa5dc14c08d41cbe932337b9a531ddf68df20b6aea297194ac398f15919830e3ee6c20145c0aae7a2cd276ccad7b5c414212f0c0ae7106333868938a6a00da19377d996c7796d400606007dff30fe554a5fef86944d43ba047a00da5c2c2a1aad053aeafcc75a1e826a417b4c320e60a68e63dd7b54827f5b8b0063a00043f29ce8975d95bd418eb2ed29db0d9263c67fdcc153ba9b5a33279becb7ab193c2f257bd660fd7012712be3fdc2e52490ade145e8e030ba1ee5368791e6f3efe00deb34cb454cbf7fdae3a507261d9fce66ab58998ca19380187e3455d425977a8396cee3442935e24347aed45fba9b323a289f1b98691e35017ecfd7a423cd8d0149432a2063e0786c2f912e1134ebed188511c905a1a9890cd55d496e8441ccf637b4d660d93c7a46c3e17219167c3b4740878ae35766470b5eff3c6b1fc8c30e5c9645a94ebd48d2d40fbd4baf9d822deb26c089da84043340a564e6c311bca18c7a2c868831fbb866d89652556b53297b9c0040e98a692fa536af4c9a7aa09321ca27068ca66c665b1121ee4529cb3e6d899964de759ab915b0d2c571c5aa76cd64df4a4e55d9de59eca7b4379b30f8559db41e804a18b8771f594b9bee3de9ae98a003430aac58c141e6f0b7b1e5e08e27d1127b682882be055ba31e280dbace7878ae60426626ea4c5bc034a9206e27f578edd17fa6c33180b649bc7bd437b2c86ef4e0f4583071f99090b95db1e415d21ddd88a910b1fd10e3a04e391d947558a6619683ae070be04cab88300614839503f088e2f04cc4a7d091af9833a4f957cfdc574b1c994673ea14dce6ad89adebf5130d266c1440b3f544eea380ba245e21651f1f2aeb2b3d578000a87683dec69ccac18b0702d3d030077981076766e7e5f3ae1174eaf21bf03662c6bda5fd209da19ff6792c0bbc5d210851061dcdd2e4794d2c3c0c531e92a2c4a23556878d3e890b65289a6a02530bbd40ed66db3bb220aeb71fcc3c0b5d5b3afc71377746b22ce636dba028bc052c219783d468fac1d4eed555c1b4676705c8d27aa8a09c6fd8640a6f7b6790ff173ac39b5f3c709281df4274cccdc1e3b690ac0a77f7ece34cdf3216d2b6058baf5f649ff5036360dff99334ff06a366785c0404c584f623801190082fe5cdf88f9cf41032681e8fd6b84d127add01d4b2286af648b83fe69aa8d109c9320bd40621cf75adff8603e3da00be36f03ed7925f19b2e913d756e952a9402cd4fbffc0428cd7eebdd7fc7d3b4cde181b16b26811cd53d9f5d85d37c1670b957d4b3d04fd06567ac68d3f9dbdd45d182619180cf9292e86f42bcc213e94900e0c759e051bc0e30ffbdb91a2493913dc8b81ba4c3e8ba0e7277dc38dc91eb2b27823dac71b6f1c47e2a04136e2c0474fe070e2e4bf8e6fc98e73143ead3c5f778ce8a4efde4
shared_secret: 5b357f714a293b6724c0dc2e2c5509676782a9dddb050d88e6efa0a6d09d20b7
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: adf510dc0e997af14f96e4863f316475be59850bc861ca0d1b057d6b94c3b5d6
public_key = d7dab73b47cd1ca43c7e036d41c94f8f31a0de404fa38a1da0992933d752acc0407234883488a581e340bf5a8dd7112099259ebfdb0cb094c8d592485f25729e1844870a3d57d63fe9c1295fc2c4a374508f359a7e9b062348c6c807322f1a2dc887a20ff1b8e951b103698492504dd86babc01339f5b0c9bdb01b65514c8df3a61abb7941da84b8005648fa0e5b094e54e56a56e8c840371349820dc3f48ef0fa488f180f57b5c0ad663512467836d6765f6517ebd0172d886430357baec25c709b3abb9c01dda27e2ac7c17cac7511726a39050fe92399e14780e3288ae775612b2c4baaa032af561d0356c43175c6263c5d9cbc62f57194c9f76fb5293e86d9a95a641325013dee98067d513525eb5d2f7cb5783915d0917faee635bcdab95a61592fdb1de202c439dba37a235e3888134249044519732701111385b9c91c2fc96b039d6483c6d1bba2223cb0f612c3f7c6dc62bf64a04b349a0fab73290acbb15ce1cfaa15c68d896493e67dd9a518782b35fe141a4d70bf33e97a616c51193b711b04a40c9634bb62726f748572155667146d311016880c670067c653e9a8dc0bc32865adbf41ba99f19b2dd9ac7998bfc8679c689a05a5038042885742a68ef84c429984588995a6cee077c3a099caa7a5d3761cb4411d1dab8fe7258c75903ef515b6b0629ff659436ff687e6625d2080671e0cbe0cb624bf8b367e780452ea3713804e083aa6e0c7adc15618cf223b3587a364320d56c58be8f037f89cae0be209ded78cbae29ed73767ede6793f0051cd5692f63661a257ccd9d859a92ac08784070bfa7ede4577e7ab1ff6c7b159089b8dbcc5ba56357b2659a7a04c8748a86991b2b775c2015a4c12341ebb419e1244396c233c161495366104b8e29979e571c9614fe10c868db56cd934c5b2d04986a70be8dc25d61cb6f0054d5e4000ef72557b712658d962b1e673a07222d59bcbc4e8339bb5b37cc1c2bbd38780f8233843ad420782b4951c3321888fc3b488897c8bab046f79cc456bba9f666ba261284a1285bf1a9a9d274d9b87788c225c0ffa20388183f35817e5825d450a1eee881f94a5a129e688ce6664021356580190a3ec5ed220b8a5878068ec5cd485816f8c1ee05c3c23ec0d0aab7f73aac249142d8992678b38410d41be710a285d3b593a8245e514a870c3c348fa45f99aacc464b399ecc0cb3c306c273e5f4c671b806864120a88c07caa53a550d52c5641203a7927b40631e21344a9337da2d128dbbb5f97b68b8e57cfbb1a67ca7741c60c2533e49ece409b0492a2e81523e6b6ad655a6dd1870b5de3690de3369c898b557886c4877ad1d67a1583bc70502b32a44afb9b60f88838eae005e2703ca26355ddc479bdf1a93756af16b7789a3221fed9a4e468b710035060752e884c56034b768d0a7106a4bebde7622bb46b6649195301192c498bb555c653c42f6d84883be82e8fa56ea303caac534014b6bbf38a9f73283e5a40b36e36c9d8b1a9856aa7d9913b22c40cb103b74853c53c3ab4ce895388aca8584449fae927b16534f48b3aaf350030a8460c8572bcc527f1f62bf1c5a9bb8ccf3ee66f66dc19286782911a6765c72db77ac0e976a2bc114a1b11000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 1a2dd390e05984bfc0f55ef96da5050fd9bb03891d4d2ddea46c463aab28fdfaf63d4b2e0c9af992e4f1421efc26ae86c2b296f6851bbe2e898b8bdf4057e875d4a98469b7d2646edb86a5eb5259341e0d14986a8ccf93563bc6ac067f8ff6997c2e7bbd897f02e844f180769fec5af9d6fa017022cb0af622b6e4f7a69d73ab01d3d09067b118d51805e1b6413b7a9e0ef292a6fca18a8828912a2db675f0244cd63d9340aa3ca00dc5d70c915b0061664b1e1d64d3d4dced3ef739302f1063442569efed0dfbe8c019c27823a3aabd865a47600ff9e24f748302bfca1bb60faf4105889a548be9ecaf266d8f02d3aa4997202477a70ee71b6e79dd1609acb4dabab72a38448758d8debf55369c5d3e0870ca193018e0ae6d0ffa33b93e962598b43e89d5978a9d55a608b98ceae5e897363f8a9e253acf8af560c57e07c4c4bde807620b6deb76d581bf92b7f514509446f5c4e4d09430b1855e62854988302c931b9e624644a636ab8acaec56d7673b26852c692e8325fa1b6215f24ebfb388ad1022fedc0bef272c87e10dca97df1e63f1a0e9582daae0f49e30c6acd119f7c4eef59d47443f491df846431cfbd23900341086a304589f52de1d862c26af32095e922b92650c68facfc13892430d428f626fba00cf9501e1e4646e55f5304c806b5acafe100084d7635702139725561522632e7e3871effe883298a7264a411484cdef78f9e721c0e5f3937f2fb7d40bb91620e473f9b97adddea69b3ac682e8aea2513b985fbae268176c1bff90e401a31e729fe8b76d13b5c8c85ed833d9b076b5e11acecbf0e96edcf8ff562255124edbeb5b9117cf486f30d7883aa353b9e433a77ac6912cc8e5093c12385ad926be1d0893afc7e64fb9ec55d3285e01a3ca63f3c07b95399bb4411c3f820f53d8350d1979ee9cc6bbf2d7c92d0cb2fd0a1de910d92589cf1aac29992489bc179676c31ae768869398fda50ff14860a1b4dd3bb2e4ba8b2c87aef7ee00d375956a62dc1e5d548a59f209448e62c4b1221631d4776dd5192154d637217d31feea1c4cb3ef1903b8987f4c184cf3d6b5355ad53c7bd3e0ae5373d9971115698214a93e12b98489cdd75028cf22c1da41096daca95854b35d8bbf7d0d4ca2727aa511eeb6cec5352ed487bd3b00b261cbabcfa9f082ba7300610c6f92725d532a86e00b2ed1929a8be7a342c079835a2285569dca92a808049f170fba39d990884ef39ca511aaf9a713b8d78973b4f4a2fde7ca8b6adbdc5a70241fe3ea7d005b33e48cc9fe6ce5bc2bae0746827e548332adf83f8aa707e703fd688c494136d8dfa50961a9e5b69b542ed6ae0e70ae159df95dd9d4789e284a675fe048585214047f7f6819f7f011141d265de9fd4c04f4ed5dead63fa4c8938b2f42108d263d5394d164b3254294402cbeb48663cf1ab2c296d6ada107e8aa5b505da49af96e1cebc6b302faa148216d38b9e8130cc654974ce299172cb875742e62c32c063ffe7535db2726f65fc8f600d4dbb1a20f
shared_secret: 54c35602dafe572b99aedb7069a59c4f7818c860b27a947347657ac1954d6454
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 3983da6a4615805f6d55c14ba582d59a40e646c7ae77f4835a51afc6c37f11f3
public_key = 47340db6d04313d3a689b357566b9743cace5d5b906a39249f1c2bcdf335f37aac2565932631ac318bbb7ca75db36ac198ac6b15a02173049721d10f7521a52f358f35f3719269a695a4b0fa03b32d8a209aa12a5d786d8dea4ba05498ba222eadd647dd5a397e655ed309883d76326231a6764a7ba4226567022d70fa20cc53a045cc5a1fc54abe0189a4a2b6bf8a969d61706944bc59c6add2992b6e562e9732973d32b97956203dbc523803ca0a462ae118633483cab85c645ee3ad51682c0596378dea5e93bc7ab652648cf1954745172a75c2bf6a3177a7841b089b6ee911149871a9d987c6d499b6e0c4d15c9b74685401b680d3e112d6d70bdad6a3f9954b0057335ca36823328ac4e124d55b9932d548f58b85a32844e9f0260d8a4339285ab46152bbc05a967c5f16072f16178687b0bc06b621f5a4a14ef86b9cf1bade0185c5c52b3f2c407479467e5516ab9a1128260317605d4db250e8f4b59bf28a6ac2606d280af28664b75092fdea1fe9374976722dff579728e121fc1944891c586625a880a7bd154aace3e919b841b1f5f8c0fb841d1eac1fb18002ece216d42cb401dc1681836c1198653456c9392944054200a3b95b986a396d443a306b66018b525fbbb042e662ec108f6b872749d3287440c12bd07d1061a524a01ad7342d74f8a4b76222c5a439eef4235d51c9494602f6624dee256ea7fc09ceba9877f9332bf195c43502ee43c75e78720c306c2fa47f4ef6b7d69038dbcb8272b334c98cb665b306c04252fad3559eda4b96c14bf50b78d4a9a37081a2d61cad33b3b9418bba25409fbf4a5bb3c775a43b39520b37b5b82191b4983398858bbb0c6c8031b9736a5f76cab0e647443cb6d983a5e0a6c27756cbf471baa17870015566db8c8a51aba969e976a1c6cb2be166f20680893950ddf09cf8e3827a2a884a7a65d61c7c70a522d17ac0939625fe63958741255b012712e76fa8da809a8cb447d730d4097bd3e86471019dc8897bfc82c3804a76a38919f7cb50ce79bc13ec4bdda215bda9789503aa822c71ad8107a35818a7cb055b303338e465933565b94950c11836e8e33ae8093b0aa0c5d5d555cbec5eb4190eecaa1525014e8a341e9400180937afeb126c278a5bc4713fe9c417c50c1e47c8756fbb6a6b265bdffb4c1456c5b7d7a895b6932dd9a55623341354549283ccfb36abb3068b2db7348bdb1172318357bac12422ab93a32b453bcc0faa4e8e595b05a145e614aded6bb77278bd78907b828b18a22aabea48bdd69cab061522a618cf39406f6c78cb983354384415d8b857cb451e01b24f489a3133070d775307fb61a0f6d56d1255c4d4e18c62e57d8422080cebc919b81e67c4304cdb560ab16d929413af650a53f870e8017e90096452ca3ea648ca644010d34bb79c5898b775b197189a55840f43371dd9cccb7b4a28a66309a515658f06acdddc47042acee250a37632b42af51adf1c0666902fe0acbfc8f59127753a40161de4ca07a5c8bec0d8ad3141487da4a842147b9de945e4962699033375548d680b88ae8354d6114efe284517778eb9b7957eecaf5b4165424a5f82f100d02b7d39968b98f69c2cea1a0b39394f49265b492ea8f4000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: bc07d2caff561b4645e3878d1de0730a88c05f46348526829a396f05a0a00603f0e2fc79e13beaacbe903827c20d9d687f3fb4eb2a8e9335459fb21380b8bf3734518778d8cfae9524ead1427c6a2dc379ddd2e985e2977bb63e932ed59c83a8b9a593e2adba0cc5f106620fc8c6c4cba5106bfdb4105def0c1d7b6800327cacb964e1d4ebbddfaa15b279115a1d05754c0c8a715fc2fe5aa09af7b96d5a93e758458aa5af8cba03b942f4d3c0fbbc2a45d3f7af5818d67219a72f4f538883ee2d3e507e2dbf4f7748446443bb71bfbb4eff0f57d8154d29f5cb26cfb52c51b676e9b1ac08786d5f475cbbfb49697a748b7902a83da49d285a48c7e9cae74b66a30b02a353a287b40a66a0663e7a71adab7d03272f2ec32d47097d4c303396db3e7b7a947f467a70646777cda227d72310806107b5dc16cfb36918e88784524e3a46c30242a40811593aa8f72c742f885a9623534753b2bac5e29110a1a854646abe1c0337251e85987aa612f3a095409a5a632af14acd19491577223c278b18a9c3ffa7f72ae49b89df6dc45ebb2803ece96cfa94ef9ef5b24fbe686ff90d130d3ae953a4f9ee6581a346b0612f84cb6ccad4fe94a53602817d67c61a9604d288319f5933f4a97dcc6ffc36cf14db593fe27f873be712186a6695d949d4552dab37e36e2e0ced229ea9dccd6d3bae22f9fb888ef400b594ec08a15972e8d2478e50f11947b52bf384c731b0e50dcd4ba116abab8af3b880c54badb11d83b4266d3e5fc25c2c8dbbba12fee2fa5c2017987f31277a67ac702b8dbe110894a8c81011c7c662ce9ab96a2e25cf5056a3e202dbf6bd5bef2347537f7811637e932d13ce02283d48d032c284b6cfb84fd813b6c3421017a7527eafcd3fbc5d4324b5351b30abcf1b366f424a8a0b5edf6bc1f3e8702b03eff875687c6caebd7bc15f1118696cc63859e3aab75aa9acc58484da7f2bc9a120844e4830429c0eee2b2324890bde302bc93f661edd9c04e1183528482f9950654e8c267234245aa9482d94e90e00e929b65431f986e7bb34524cc41f4b4443646713c7abe6c4131a2d67f3bf42f0a7f2eddf82b5c08a94d99a0a7d14c1b0b375fc158b7d4276eab22efb438f0d0a9b30e9dc127026181e42643af8da0b24bd10a532069392724948ad722b25477b481006fc1fd030aa62b217e6695dd4c7ad34dbfb75aff1df5774b061a4ea8526e9bcdf9679405c0d2e40dca00c9e80840e832fd663596dc55f602d094253893405a02d4414f119d23c4544cf832888db5ae8494dd2e8ee357753515d929b8a37b5b45446ffac20fb204b5c937f6344c453ffa449fe839b4afe1da61301057338fe29df93aa962a7374a2ec181ffff9252c8af5c3f75ebee02fba58a76066df4c6acfd5d1c18390652eb2f469d35dd708e63a498c08c5241b2717333904ba0e6e0845dca8c9608f28bd1046805cf7b220498145b23cb18184a259458dd2fbaeb1c383005a0d289562b0a9daf7d1e320aa302fd3d9a02c65fa901d46d4
shared_secret: 7e1b4195e9cb70e6884d3d00f0b3f0a66b4d8c00ce112e1e79a1dd236ab62b26
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 2676b8426b9d6a30af007094bb76d65d388c2b3da938215dd6f6987206400e13
public_key = ddabceea01649d9c6588d68c05e93cb6959fbe348468cb6e7f482d2b0507a097625325a7ff5740086bc203410414845a177c578698b313842dd2737d79806fdc8aa4ad8b91b514b6aab60885a49be68ba60d05891dd1cb47c1850b0105ec15a95c93136f22a170e346d2256a0cea672941335423cde35492967759b4317981c34fb0d759a2b08aeb411c362b2630c4b8ef342cf844206d7a5a3934bdfda95ba9fac912fb1844a0bb62041868ba0e3660a5551951b39880eac2959b5028eaa765492416ecf7a05102450eb20eb2a28be460972066b41ac87abcc28b38a7c92d91779e0c7cc8b42f107b48269521edf0c558a1b767536d295c3a7e60b9de6a8f299563be7c4d33d33940234af8c7764b181fb7b5af1dc88e4e830725533656520af7344e4ab40f6df34a90a898c672b854021d0631c1b1e9999d8176b22a5ce829a240642e19472e635a83c5086f87872f72a62e5fa038481a6861141227666f9203675db45a444c6310518d86a9221c9b6bedd753bb7914f7995e39031963ea056536a96c9b14598c95652091dba9210168467d7388b73770aa905052645eaa877c6f8a45acbb775d080521479314e214a5217835667dc2cc67dac17b0103b1049a03585b30631c6dac53b6d4056e5877786b295fe94c8804b57a027609bee938a8812666d12345e04c92469463443fad1c2188c951cfc6a06c3b8c3ad8856ef26a67b7841428a1f5b69a3fb82cad843a55645b78219d6de824701b0b1f192d4f816f45032b1cd5b465d33b3a9cb2fb04cb271a3cc74a8bf7ab6ac7a00e8ce6a0486c660680219c6ace0917b31595584f4756c9c5273ee36c37d25d5da146e57613edd34795b9cf61bbb7ebc441d575631215a87c4070159136348854c297cf3ca44fb2814448e30eb2c555aa2393bee966ceec0221a278f048aaa6d09b1d801aa0fb369ae4480f051329390af222712c61a59f98a31a03ba90c1a6c34c1c98c0be7bf59fd717ad9894786acb1cd081405c66a2e79a1fd77cad853761461c99218aca3cf4920703654fb9529c106f41a78b259294709bbc91679d0442bb383c28d64683ebdc7b94f4592c8ba2c1126c9dba9377040d3a124176fa33a3905cbb96764bc89a69480b74e38f558b422ef22e390bbc76e048c01129c97c26125bb2f86c4bcd274816265d8c41167223b0a22406d2a193ad3b1083b0cb75f9542e55b9aac02845f59618b5aa580b5b2bb44c192a906ce61b8c368278618d8ca8409fc02bb9b097acb208e3c2a9b651a316b70cafe6b9bdb32ad794b4f018b66ce55639e5558f5a3990475794bcaa06f17093d490fa583e6fd9596b40958359a30f813b940b1e1e4223d3857cfea691eeca944de845c2fb502e35a5f1a3750454593fe1c41662a3b3da407aa269c43167acc98f5f3c662d6177d3594d0cb800087c6a525c586d86c12e941b046625d90c8ec6dc8a5c546abb19a0b585aef39379db926691124265103bbb49cfc4e9100c803b4ef68a904273a6c899e48609bca003bcea9cf82203d52b5f9b65c409ba9503b3b16c7077465aae45d2cd4ada79ca43a9e99a124b7c9fa24a323f6c6bc18b81d9a6161191561f3776740b539479582a46bd913ad73e09000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 79efa2d537baa2b87a787317162d3dbcb40cb3c25f540ddb91aea6cea9870bbc5a5f86f8900b913fd4154bcfc7c8a463b9b66118c502ddad539186fcb079664f44a5363cc8d80d6a4c09f28cf8952157526cfef7bad2fc2cb69ff03ac39e37d47faab64cf54f63919303badeaab9e59df7040511ae335c5230e46e00a666b994d647d11cb032e7ee235b5e18b1894621ae93ee129823334580381b857cf0360196cb75180410f9fe7558d0e189502a5dbac5b4f0597cb3d1d201f89de26f7b4ec0d200a418a26cfb82cd4496c3ee22f6eb60f3ad2e1af981c238da13063d1746d65f77ce0ef30894468b687b31443c7acacfc3b3878fc9ec56878e7bd1a9f72ecb1706a4e5face0a83282cbc2bd15c89afbe3c97dfaf395a96ffbe1a3f75af03311afc69dbc01b11ffed2aeb8906505e910105806febc6e1298fbb5c0bf501232b888b7e8b285953d250b866a20cfdc7833a732966b3a03485ae2852d0a3fbeec6dfd0ec8015db5de69e55f091e956ab4392834c5128417105541b1145b27175fe35efbf3102277b35e42bd83aac25e25da6c55c28a03b9e2a8135871b4cc49fbfd5598c9eaa2482f249c0b6332a6999306be55921a3016499bc63a072a6e9eac894a3ec209177d07208d0d271c47f8065d0facd2e975011944f7884088768fdc053cf86f31f6d348222c06467fcf8ce0d404a2558e8cc422521a4e249549037d3e8a29e03a9a9bb511d9ffef4c5185a380d874732c9e862a6e8fa3fb72b213dab2ad0d91b047440b1d334660067566e6d2e14765d8fd0a45b9b8e8566419a6d7138e5a106c31b1278d50027d152bc8658d7045cb2297bb8382585b38be2d5fafaa7e8c867c74be013793874f181a9798193dee26fd5812eb469d1b842a969cda65d3440c67b00e6d1c3ae8630165499c1b4cf3153fb5731916ab779a2562ec62637d747d61342d832aed330e5cd794de900fa507d4b5fbdbc5f3ec1aa69d0319b3644d46d9502d435c1b5a329c0d3524611a145e3024595e91c2afd577a422d59d4d54a430f439534003be467b6f018736c4bebceaf7c83c799c2b7745ce7498dc84b9e455b96410dba1a0a5720fe703b7c0d859a42445eee7ca3353f294438a7d463fc3e98f4403f93b5fc4add88cc22db7bba150a2988639ba96cba8e2a0c980c9bf8cebdb5beb262d79e86cceb774750cd9a192ae93d85e60722ec6590beb7df8e4d036837c97dc05c7964dab00034683a576da5b51aa8a0622edc27975978c7daf1b942285572b09c170dd332a99bbf703d84becc6a96373fd1c0b355f063e4c2c6e59f5437802676000a819b9b99418df893b98a8e6ca22d95da2c151fb24a3a0e5944ac4ca6376e6c281b275589a3907c0473282967a121f1792d09a15e9d71e71e73f9f627ef0dd478061cf053af434b0663624c3bbafe0f37d7a32504e9c686f41bf48e287aaa8fadb73fece907f26a9576611ab2176a58e5c1f3e98ec0248a15774434c2a81c7a8f57f9950b83c0d3770d17c4e57582387d6f19bd
shared_secret: 2522e72d308dc9d7d701e0b024af9e15627572f13573b27c406fa750df9636fd
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 319c51bcb76124b92f39820a5653c0ecfba79ec91d632b0488f4020e5df4e37a
public_key = e2c1184862562b91806efa62f1b72a8ec43e70663de1f66a59687ae0cc1d9de1ce69244fccb0841b4b1de2e964e29408094a1ac0a9b4daa836e94454ebb942c6e9ac66f39abae73f61a99834292ada3c824bb53c8e67912a07377da92e63087f8d947f59d94a842b7aa8832b2c3c1aa957577f55027e76c106f86946f036804671b0e0416cf62e70eb8194d88030e2b38585181c4ab1fd8165a821bd68dc8fb3b403016ba5fd129bb9d23182029c4a292433087632816c009a237a608e65cbae17d688a326bd6c1ab4634576fdab2322b983f29c3e63b31303cc386bc90641c84965572c49a91f4e8258764834f38ca7f869cddbb10674d4296e5205ad805ac48462d3b31a9e6067fc0a27470aa593b896c3c319357b9bdf0632bf0786fadb0ac242609462a06f82460ea75762a678fcb07c350649d13c24c9e33200c9ca0e9bb87dd2c8578c7c4e27b1b75681a0b6aec6a55e767c4e14820f2ea609a16b862d5695556b0937f53e0ae370086c8f771295b1a09f0003a07bf512c4272f7241752a6603f8f51ea9a088e5263a59eb0b13b87a1d2929c2c29557681f180261f46c294de4aeaf380ca5f79efa2c64ed3131272ba489494ddbea14c69c46fd6346a7ec9f72d89559435e139a67bc3240bca29b3774127dd85d53c20bef719724612c462bc598c54738c87a00a9cb8c4b44e4e7ad4573afd9324fcab820cbf2091fd83fea52adc1b82b3f6c86369aa358498197631a20d40c790c2ddc66b0871c1ef882305bd978055bb934467d3ffc0359c2b31748cb19f615a63262fdf695f555be1ac432126b08e4a97acc18b8606ab6adc5cbe4589389e1121d737ba2b3a84d02bfbaa669f3a06b1be13fafd42a1773c830749cad35456e956c0ee64a5fcc46f1763c3b0c0d3de5c296a28f61194ae72979add8c7ce710d4ee846af81cba3e18d5e459addea9fb565b010e9ceed5798155227dcab155984635d7539d68c9f0d30537ce8b573b6bef1170540d0c10528737d6a5b219b2d96e5709a721b40536ee3c416fcec0bdba013b0fc0e786c9765d312692a80a5c9a3d65a6662788d194722d63b4bdcaa700e4c3daeb911e4d45674c3720be35269a21c0717a4c3aa2f3e1ab4f20a885cac44228138ebb70bb4548dedf8678d2163c339c1a9c719c2f1a51748571358c1451b0ced7b90109c98591126fbe57e1c913b5a935eff14450a22c4a108108b99b6efcc9bfd8438b5024677144885f1886ba068a6191ae17b9ffac1087bc94badf510095baa7167a7fe245a89a2a627d2631706a15d5aa081d037a4101b217c1c45fa0d83dc790447121cd9a533592cf8ac424de8770b45307f0aab484467c4acaa82a5669f7621e8ca42ec0b9222766b52775173b288ff5b01d70a60a853aa44917b8cd09a4b666138e91a3206c97877c96d690957b58553018f55f168c1c51bd9a48ae762a65dc73f366c79e77c42e793750924bcc1472cd5e552e20868a42047593842619c2e0fd40a3c7bba9557bb5c71185430a0158b9b95d04fefa266005141ffb4ba5160a5eee1499c09b11c549bc88cc501dc94a0a5828ee8a776a2a4aba3bafd410cc8354216cc3a93a457e9847af39b898b04b60a0c661a72a2df2b000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: b0e578cabf9deab616e52934955f42eec74bde5ea98acb022c427e08232142dd08f9120eefe5f455c8f120e672cb68f3a146c3aa457b637d0901fe2b4cd45e8b208e06823b8aae09778cd00fff5bed5232d219a2c33645f2dc30593e591f697118a8472eadbce05c9fbbc5d4b717b880065173cc0854182555376dbbe39194e4204067358808c890e5fe96028921fca344e3500b615f2201a1c4e4d13dcc889cc9b1ac72429074c21a52f4c78ea2c467d65cd2c9ed682f21f31b27af4eb5cad33dd633185bf32e726fe6e57b03168803f693bd85f5a9f2c3ec6944e9ded2b8f3270a89139ce50ba6ded6bc6b0be8893f44aa5856acda60dc1c4c0834d45574ecb6183d6e59a183c0125ff45c718be2cf85b5ce6daae6e37336ea63856561f1bd4404df725d5ed9263038d1c623b2e1aeb35924b79de474407168834891af783fe5d83a631eb14d7cfa949d698ffa45e7d8c46ed4abf75cc666b78526c9b95ebb2920c77c56227eae6c893b57f9f463ff2ebc9acddb2f7ad543c5b2259047a4cc87ad05c08bbf02e8bb267bc490c4b67106fb598d42135c927fef3397f4c3f6838776787f23a9759dd3214075e79eb3929932becde84e82c257e4638a19e1e3312cfe09d4ac681d653d749c8fa6efa6dac35ad59399f1e233540fa354681ca55db90007039b7e504e2e4082aa3e4d672019741aa02a281454d4e1c73a1c7d0b5449c2e143ceaa3b18cb9a74a89f1ba74963dc5dd4155a356211277af3a267947700a2cfd84a605ab02d37bd6faa8a26b50f7b3d9bdc79913272c31dcc0f0183d05933a9f233504ddee2dd851529667ec5174a3d23bfca197538ebacda36bc29ca675384c0b3f45e4f67fb66d8dd4aa57b7da50ead391e6b663af173e7f4d46139f5d0f4cea84dd32e4e718967c6b93617271224f2fb3a1ca5febff5f26c4edc60e9acdd9e464ebb4571dced645814e1038a50515a7e06501adb2de19fec4119dec7548c41097964c3151226153ccac24abd1415579ba1c37c805a5827332d97ba90713829fb30b7b09b275d75bc10d4a26b33980a0ccd4b00844d9f379551bd0170ee895286526ea9625a72b6cb8decd9cf18e57262f8102a025025e8168465a65a7c7e4d5fc8742781acdc16171085d51dd5ec9f4f71f58cfaf4557a55d07e7c164ccf7eb427145c7f9a800e9bd9192ec0f74d19fc17d3881b1d55e8600aa55abf78fd1e226d9dd6e8da2bea15712f5f43325d4b9c083d6e37d35c043f2bc8c796ade072555263331bee7fffa54e2099135ea363575847abb770322376cbfd3f1b7980a1857c55fc82aa80bdcd701c7b7d66221f08492efb5438a04d041b485bcb61f6fd306e96cfe758d99ca1cee70b200eedee86145fe37ab7aafcfbb2df694361fe9923e754187c3277cc895c4a53732ee118c7b6156b55b30847a6e828b7069a5d4be623abff66ba87bff49294dd9b1f698ba445d610973d052a80691c9968e3179aa3eea5b0bccb3cf674c5cfe7d2c14d7b6daa7a4813abcd56ef930099
shared_secret: 1cffb3d6d9dd9cf90d79fb2c5c974818c5bd6f32ea4d44c302337c4cbea44334
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 00ff48b3769ffaf4e91c1c9110eb8ce9e2cb99f060b486b37035407d2f4ca517
public_key = e8014b4f4687bb6670b1c2a29ba577100943d5b926cb396423663f710328a8b536403530eee05006e7a7cd679ea44c29146494f1775cddd3b43ce6a903283f7890979ee98842d5a76f93777297abffccc0b8faace8f362c081aa435c32a5c31773bc046e61921f1a5707579fe36067588a0f32e2cbf91aa3ca6b38a0e12ffdf8685874869028775fcb7d7fd7a1e37c611316515638a510a13e950960e6f39395e436821165e734837ed575ad510d4fba6c3ad67e039b71a9b6c2a7ac240ccb3742d65b4b1c50a6a1a496995da77921ce33624fc48135e88c59caa47b299605ac1c79009dabb2062e375547ec907590b9bec52c86a6b9e394ba5f02401e4545c462c5f320939075b516c4a5dd0aa5d879456449a115125369584a609a83df8685ed2ab45f038559dc6b0ea170b09680e7e747cc7246b6c182d9199941847d9c1168a84400da2a98215a9e96f6bc869035a8822b27d459cb52147d966e0c354b70ecbe46daa9034074019acdac30055d8a1a02741ed8e602e2cb3185ea44c9e61fab637188554c8b12cc5abb9073b35108f59f6832112ff23b00acb0936594c00c0534a8c4c11cae4787092bf497b60b4a44116156e8368c0c950f3677f6424690803ee92373ed5c13d84c355bf041edcc872965816d6723b344244d0a54f8ecb0f1703ac251293503baac445996a1c9bd6ab851eb52f042692a2b10e4b9b44dc9625973af03fba67a3a93ff849dbea64739f643bfb803ea8653c2b9ab9639614000994bf48a8024c4e61c8a07a5c79b19540084bc7664ad44122e46ca1fbd517c8e68aeb3d835e53846848742a9fc2a4058047969bc11a773e623462c7bac66a34c62db861ef64dedf23c0b7441f6b75b4e60b86fe309b1b7746d558987f6a92cb8513792360ef76cb6548f0813ae8dbac418c25a1d95b06c530d79c6751e7569a2027f8a5354de3a70752764fabc632f3a1bf2473e8aa2a5cf815b3856a89afc122d98ba3f74185a3b2c09049601e23ee226329f024ac2692adccb2018b22a592a450b4a5819b2a498738d29f7145e534e527c859f05ad96cb963314c58a5a6b050ac6ead9adc4782859e3383170cabe4871cfc17a30ea4ac55cb998e77e1a26662a255f99f4ac7b98723341b2c7134adcdcab12a473bfe001127bcb01f84df31384af06171776263085bed1aa3374da7136648608b569a88663d2122e84b4b946b35c1f24a836e924202b7c7828c15507b17f906bc0e4b28c230134d90655696edde11a32c7a70303aaae3363e2a6947b4bccefe9ce62953f92521029959096a8910e71c51b69a0615ac790341c0ac3a574a79d34c11b4a974ffd7cccb05995d4089f8186b545b80a166982cb53123ef644e82897c77889ef91bd8c5a4ed1a4a414389d77307d53487940fa32782061e8458e0c601c884321d121b48ec04bca78c60d39b0c4bc9291945ae18224ec73ab7a451b9cb511bae34a20e326a497cb6ce46b5848c289da630f497ea3975eda79489f18a405e91bde288379f291f538c1a1426cf1634bc033098bbc9958f7af6e408354314e7221c37c1610bf904cf9e7807ad327f0f316761939674867ec7223f06a245711b0d47832b1a699badc8e1217798c0d000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 3159aa52482f4262cee553f9eb6d853d091a507831f5ed1af37b9c55f217eb1e87e8b0dfb653932c27e9e9f2c4d45cf89e9cfe9ba0d5175be56b7fe3751a4255649cfabdf0cbd5a8704d58511acf6e0580eed572561fab262b24d39c3a430a4e54fca969394037df12fd8cd71b7b6ec3d8f7345b05d4c16c5871b686690cee9804012a3379bbcf720f405c3c83f59aa391cefd8b00a73b41147d42c8b7820b0e779c44e032209067349fa4cd35e83850ae37ee73f96fc6bc5b71ff9b0462604b4e07be60cc76903175b045b908c9b8e7e94c6bc7c48ffd49698873913f9132025e51614317d27a874e319d802923804d1ce1626420d5794bbbe5e077cbd7fa3d958fb2d9608a3d41f605908d21fc7f942e3152337115a28b661f76405620b056692bfcc066f370449628f8e31b7453e5b7b10702f7c195dfb779fb3253f86acbaf4444ba9ce01c9b043133a233030247f8fc44d5b8c9b024ee83c186a62ba9fa5a3e45389217884a478f238d6a9b8eaf3d87b7b4b4375d4d5226dfb80255faab42380365b5511567978be9726d21178eced7294463a348b1e976d800b1114fb8230115b28e51f628a31aa8cf2e3253a7dccaa37f975fa2b8d32a6b6147033cfcbde33ab8857e3a6af95e4cd0db62fc020f55c2d6c9204a05835e2cf878c66502f572016d95b30c45c2ef6048471ad0cb7fe14250dddcb4014c392c22fb1dce1adc8e02f416d3e9b417f41c1b4065b975de472d0e9fd5b3a012ee9bf6311345b4968f6f18262bfc2a38d56d911f9efb981813f77a8a8d6af0618e015b8b005e7ea957f89f140192c7442a645ea7012b5ea2ba9f8cd2fea2ad3e41c6a57582237d53444fceaa933d61eac36d03a2865bfb7f12fd8cf451edb5050a35a75c95dd328296dc32daf61622ce0cc457c5968414b634b3e12a0ce45bbd733e3982c087a037d89cc86d546007bd92eef33949d19dbd4daa18e59c7ea3572bf3155a9a46af527347f4f4dcc2be3cc285d65f2f86c681a137850431ce8d2f76e295e74bd0b3c88f1b68885522dadb99fe1c8e40d938c9610e466770d62c34e9393241907d9cd7bfa470cb8fc149306d9450a7a1887d03cddad3fcdeda1ea54d3f126bb29a1ac3d7c5a60ead90d74ccbf1a75b4289a74a49e0a7c4006ab76a83915ebd4a95a471525444dd2c3e748b1bd347774e2cf01f90f05a1672c58f4f563e4da083e95e0fadd4ba57acebcb45611a3923da1d0d73f5c9a55489fb0097e123694e413460252892a0c6317dcb56efa834f7a51db4a413976afcb30ab4dafbe737f43da11c1b08a2472cdff3995dd7d23382b866873624fedee76823d37ec230dee2107258993d5b802fadeb89c9469a33c66c91567ea92581e0c2c1eaa2e2a4696b024c7c6009687d07769438a8b2ba75a7bfb32841dab8acfb8cbd4d1e26c5eb68bc49bb394b178e6f89dde843f4e2c5353b04390c245a0bddd1aeaefb87528b719fe42b35ad2a89ef34826d9e23f95b1bd3c3b24f785985e10dcaf0eb33f5f71f5cbe55
shared_secret: fd9e333ac811ae8be12c052c65131e3a7a32ce82e39055012ea564e10acaa85e
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 4960ccb1276f96d7aa55885b6ae6f90343d42e1391e8241b5952931a979837e1
public_key = f6513e1ec8234bc145eba3446eec18b3826b2ae709792648e071a7c4627e4ac7716db5b1d6040ba7b8ac39b347ef721a99c879453846e1aa591b8495e19003df973580d4192cabb72ae2b1f498bae9b3cfffc8bbce09122cd1910a406574106810dc556894777f35316c992f3b902186dba411ca3462b927688c81f7269b7c2770de5aaf90c81f752a3ec77942729a68fcb38a62946c601c945249bf0e280b66764ba71a44134ba84df1400bebccc61456fdf3bf50aa85e8e60f491ac1c1317d831ba5db6601133883fda81115c67fe4691d9df01fd3732b336bbc3899cf067b9e3905294902ca5686480cc94eb4e98260408b4dd060cf4b5344380c89d564b31158ce098ce1e06b91446c4189c6a4d89aa7e81befa900b250a7060406e25725e09399963c5e3e04219d390e6c28983e335646485023312c4d5bcad9aa7ee683b935d71af1908703fa2c9d66c8b6c55049b3319d39c047b5824d04975a9034e8ca1a9e1a5b0bcb222c5b5c848818d14503c31270d4f8446d013d4ecbc250b72dc25934726b426afc85631ca1065ca6e957ba00f1176a6a45b68a5e93274423e642451129ce83b7de439963c0c4e5d8b25f3b74fc053151610b4263725fe51423e886bed19c534165b4cc90fbd67256839b9371290af9853c948251c768e157041ac91fe6649bd1b1855dc417624b8ca0d798b1947c720b3414db56f01500fba30207322ede05612bb6505818a9a68538c9eb98f2b0a83dd38b765891f0d01f1db768d2355fc6b7a47414527c92ba104637072a72a6c0ce74772664e68660c9c0c28347315b17273a6846a79904a04b90a60c5b15973630209d9460365529bb72524404b3d9cacc013b0a7355a7eb2172d317cd356a07e5a341bab7c33db5a48fca4b1600443df6bf441983cc05125f6aa94f114a8c3ccea3f9c498c1126c072f27e97555456114f6bb3244c4698c3f6091864274a16bd82aaf0711eb8c4fd86a11b35b3b8b0528cefc253d7906b6b05382e37428253ebda5b48b6a068354381b24348dec73c279010bd32e41431d139a021a398f0e5c7fc1a98863f069b9d42a96b029455670caa89e0b867781f73fb7549392124485cb032a008d63812f832cab899a8d5d24b403e76d17d6ccb56c729e15abb2e04e32928c9b8971be6a4c70b15bee620eef375489347df7c622d9a803a86c2a9ec5a7a0554ff763912bcb7f57eb8b8633cf6ef39556162eadf8c285b61a53f4837c8c9ef48c3a58b3b6c31b8227c98df0b9057d452df2c258da8a1de1b99449c0054c48a0bc61a2336323367077cee252d366661904b12ea6215b3ba55aab06f60a517704a4046312731325df563cbed805e2c7b2a5848fa1cb97e17a2f926664c2947a2fdb56ed1b3c5e084a680073669b2b9e888ee010410acba461910795958e7c0c98294865cc700315e86a5c54912dc2affc2469244912d8180eab244332a00b7536c4cab62345872dc31ca3c0d2078d07beda4431f278aeaf2482cde53afc56352a894dfe3948fc14956917a4dc836f54369eacd4af052b4aa6b60af5e86bc868be275abd1118a83e5acfdcd4c92a3c2e2b13cce7101a9d303339f0b2dd4a282499579b803ede0b26c75eb8af34000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 5ab063c95a541d1be3fa0744e0db7e0ece17b6b47cca0fa41d08e7969fe87de63f319f80b9a31ff01e203de6e518e62e6133edd108e5a3e08d3f8ae0556cfd36b399dc1ebf3b229bc5013d06d7550512280bad2b27657d3ca0679d9fc62f0bf875dd0b326008a89b4f29e97211ee7ec75108a9e4a320a34daed15fd7ad394a1747e4e35bbe4f1118703c330aea81bef3e3883fd41c3efc3423ab46b553c7587894ad64db57bb0fe4d289d54c8ba78d40683bdf6330ccecbacd3f7f41541f1f2b1a7626d3969df6586b4214c02f921451f6adc04f5e8de1e3beda82e4aebc5e06abb33f4cd8a3b3b5741617b6a385739133cf5b77dd5607a5c8721d5b51c6c0b6df551a5b440082093f49f31910a04e4226b9ae6f41383672e0694bc4075207034e39c40668aa3174cfc8a75fb1a474485e9aff01f3572a5c7e4914e7519344c8ce7b81377d8c2af66bebc558359601b21beb984c1f00564d46585b4bf02c958c6b348642be25119b12f34a6e5755588f649837ba53c0efaa4c6c95d109a4ce1f761c1dcecb84cce8376cb1c4e34ff932408ccd2d06f20c5397f6277bf9c3234b20cedd45afecb7e87793d85af15909546c6ee41987f36d85865c8c1e281e13d9575abb9a9f215c08d89420535f73643dc584707deb7d5275252e862393fb6493f9e126c651b7981f26af8daf978153fa4476d615183bf147629fe36de7cceaa670dab930ba8a684b0bee24b55961ea556123b34e29491704d2122e46bed0f6fd50601e13a5d46c907b915f3b8e695e0bbf474aab6e082d156e79e59572731b48338892f2268dcbb8fc21cfd537979278ceb210fe3efd052365fa249c97e8e596ae6225839e5b8b296770f3b42240b8727a0a730534d0f42f8c6ef148fc04e4285e1aecf060c3666fc17a1ff794f584b26b0b1c41f0fcca249935cd411a151932b09402016a99832850b3f56c4846145738f709f5e11e28a90d9137e4e43f03dd1ddb6565c67c2a138aca59e8aebcfa61984bc7ac13a60ddd2c1f0fa84fcf9264ad5049c888b9f555e024f0fa685474e083025da168e3b9c4ad91f074e7e711f84bb808604114e09d1ceb83b697cc0f045b5089b0bf7381ff2efc08e7316ddb7eb7be47a1d82cf533ea898e668f0da124d2e87fef2b558f877b50b13a08641c74e2726b19fa7c0f33ab213f403c328ea60d08c07155ca0c19bb75f7f6716de89e34c20f9d15ba8aebcb98e9b6461477f56f9c65ea7e8744a4d7306e216f806ea8f9f1dc45781c1adba44319031fb9e81c6d33bb317d959bc53a677270f13d96da19833965aea9a18172f6f975bc4d03036b1239e7c315ecacec35cc0f788be1220c0497844fe7c989fff5ef7fcdf89c261a0fed3915cbfae94b1fba22827daaaaa0f968f1ac71e9772aed587d607d5d3f57c1500b6e08760e0b971c1999d01553bf87f55fbad96ce61d0750d75180623543f40e5b0cee74bb429edbed1b4c2a3e1aab86c8dc7381afb0b9e7d4151a3f76b7dec4199b97304d7b3845788e19126e
shared_secret: b4b4634ad37852e19175ccfb5eca50093291da8f76b86be7511379188bc20d92
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 456be124e7f43803de5f734ea016455d68164a7f054c003f4ef49e46f42dd8d0
public_key = b0abba905c1559715f25f720b7b745a52332355154e60577e598c754b6346b335b0195ac305268bae78bb4617807ca4666738ca81515bb041d43a4188003c52ac4ae4b3808d8c755d3e99d00537249d39d4cc02ed9f98ed4106895666c47538f79e30f5104adab1540a1fc58d1a857a1a4611257be37e0327491aa4b543aa6322ef7816a5c9a55eb3bc8604b15540b62c3405b861a84218211c20bc3d35a8a506b0153306fa98b9488a7841d85197c170f84c380098077e42cafdf1913df369f37f3291ec47289710c57f152b74572c23324f83618fd281f5e41976e77097a570a991b3bc623ad6331a1bb34673b1c328319758ed731ca2981b50a5a2cf8c66d31b10e88c95ffc27c3b6aabe8b207e6cb4373464b1b83f4a5a9806449bf7fb622360bf9f098b56729c5738191d57492b377ca8f989a87922a7368d724b07b7e36133620fa0735d60f5be8b51c19ed1655de5108681cb27273d511c643b7867516c2982a74f62e4cb759bb1f5f0808cc90e1baab60365722293bb07841803076504d00e6fbaae853749fc322e3458810ea41d832b35bf05a10e62a4ff8317b506b9af7216c445663c9061cc62914b0b72b5989d7d9c2b761c2fc5a28b5839bee5596c0de25c10a15776447e17770edb666249a2310962152059c5ed5738741a29e899072427891fb53606ab8b5dd06c005d239adb7bc368b10b74508c45c4aca726fe59c7729cc1ad617236e1b75c760e47815df33297c084429ca371c16c5761c9a23ebbcc2cb43ae9734ba9495d5a86a89e75aef50b9e73470d8d9974cf27a961c0cb2c180ff36140818b005f05afaabc86d8b8bf5c2a62f0632ebeca0c9c567514c9311ba6216fb13f1603c77656cced520d977ac75031044c8790d1b4c97dd38b2aa43dd8808a79e406f8e01503db8f7b51cc1e4265ee830461f41cec398251ea60d2c573ec59b4d28b09dc9446bb972f6d134e2e192e987153b39538e1f631bd81b2e65c2c5c68a96d1b78360889efa4c692b7cc374160e8dc485f47a676d77706e047d3e717386bb49cd942e4c05374b3a1cca148535a3ff1085102f4a7077b5f9c7b1a9ed651edb32691037f9388b672a662bc247beed215d51b414d3530c6b0631999663fd7c0e5da7e411c32c506476fd08a09d499ba3c27bbf6a804cc7e8be5c1f3f97d7aac085dbb3bd1076a69db89bc990efe59b00ca943ef8560642176e926af342b48e8002f6d1aa99b58cd013b03e0d285455786b54a4be3c581419730081361c04697b1b2c07df068621213c8ca6554b5982d5a1aaa113ed9343a56101aec68b838a37ef2c8a15d0504c672b278556b40c766c2066ac995caa32676da182545773881545cd58b71d3d7a02a209bc7407f420a830513b9d9d6c93c56571e42c8bf154afa060667a46d13cc542429c9d1a35be012cd3c9abc2bb7484fc89a4a83a20f7c2bb088793dab732ff370cbab614aa851fb77ce176b8f806c4f2e6068235b93d08c39e96badb37a457e8a790b2b8ef00b0b9e941592373fd2caa3ec3477c6c440d0daa755ac0ad2285754ac64b0852086112b0c9794f1657916fc173209a40425afc9b19946c529ca95154f24ca3cda5f9547c429836c377123c6ec000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 925fde875ae198cfea88c4eeb3a0091897e25a793672df1de3f24ab4fd3edb2cad0b07e698f35dc97bfd1d551fcace3282c8c3d8131857d96ee9986da7b79a02ddc6cfc9fb7f2b809a8e5511b1c1256dbab33e7606d8a5fc048b36f6ee53c7f556efadf94494595a549ca260ac9c45bf9962bf406610ca58dc286a9eeccc447a767b6db3ab009f5848558acea4503de747d72d43218babd6f68c091b4581f4e41f2e850047f5f543a02407e7331202b0eac7bed180061bb53f4dd3504ccbd3f298d96b43bbaf8f0c2545be54c59830e1f343ca88bb9c6812c66bfbb59a6d68298985767a73d34fa69b52cea98d95d8305f97c4d4fd643b56c60fe31e3c2ee7e938ac2e4a5da2297e670931c1dea5fcbe9cf118c62a76a461495f10f640fb416ff7bc2478c0e8a1356bb840345f3d43476bc4cd990eb7f7cde7ccb96452d055397ee402be2ce395a29a4f4061ec3d85b99f086341441022435b636028a1a04c5d787abe1c24a5a55653b7063b1cacdaee40ae0de77b4034b9ac0e860a90c8834b352c71e353c02b1f46b135fa68fa7a5c1c719896987d79f3174b8d0b0c28ed64cf9f2907924497e35bf519d519a9199a4dd68025992c6f466604bb2ec3d7b13eba76e4803fb73bb125b83413998ae86691a0b35c0054e1418898f435ab26cc12a12fd4dcfa9e80887af7ebb6c856a7fc010cfcaef9e1c5a4dc24a91a622fb7307521faff0b8e8e966b7b6ae849ccc75d31c8d700a3b6a9c3f646b2a88d1e9391c2ddc6c9ff15db961874c87dd94bf0165cfc8f719806539a8beb8e28350610461b1252872f0f3ac273b3366abd78d9fe8868dca1a5eecb683ab8b50ced8cf4a5ed3b721e0fe6b205fb191985ca745ff5dae0010493f8296b6586e1c96f7f23fcb4ac4dda15eab811107c977aa0a16439b06986a9027640cf7a01051934dfc758215d22c6f06866d5b871dfdb6ed240a73dfde43f7f89c0ce6909b54b0a633a25f7253c10906166f81ae91a1419028d6182c1f277dc7872b824c7a5a22bc7afc02afeaa9ba4c271ee68882397e6cec34a955cfc672f4e6f5ed870a35ebce97f34542cf0a162938c91922230ee3fe9ed9a166a790ccf450b80cb5f483c3c6ae5b2e52e907824b45e69e5ab38226cbd6519de995e1a62a910fd45ed189540e0b4058ff01edbc6ba4eebd58d55c0e33702de299eb53d6518254b8471f282779533eaaef90602e52373be8b519c56a2f6fac0953c0f84135715c5674e45d15804fb94d9e0525ab493aa625fbf73ebdf74f0a1246e1eb0e4e2e261b24ab81d8da6e1770634c747542450cf0a2af23507f8b6766a16dbb2e67b2c94859228b91eec6c59f5a271902b340320412ae947398ad102073f8b9b8c021f81f786622c3483e61f812aa76232e6f9453eae044c5e918e6e4e0e18a78efaf6cb36f7b75929d0036c44edf928d6efe1ddc87b96288c7c624655d302b98865978ed7bc779c800e6113a0484dd225aef29796c8ba300b3f48dd566fd877dfeb5d25f96da5d07e643c5d
shared_secret: d4b9a0f77a52d4f8b9c95951257348d1931725c27eede694ecc09204a931daf7
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: e8ac9e76377d67d84f85a142383e777157805be0d0f679ba89cefdfa61583780
public_key = 038c5d80656805b427d0b9167abb3697444af88a0f3eb48bf658be44f36b01233902291860215084ec7bb3e170e517c65c623ecf4a488f69923f9045ea18334d5c8ee847381b5a8903a6233796b1def36e46d343cd3547f4a757d82c262278432bd555fb5430e7f936affb453ac1a031c70cb1b3a8f3762dbe226461501d13d10052fb621be30b8ce63ce93591979863816397f0d198a6c534b55213d778ae7bb1a20ef1809ec37b08382c43e82b4a758458d7758d23a350538b3e524d27c9074d1cc4e3e1a17a6b06fd71178c5b18803b1c439b9e903a0d63018d2f765fa7426a0684793ea789c30435657b9aed58886cb8788e14426ea0295da18293024eb1a39eb99a20619a3e2db48a93eb90dbf42b84fbcec1f0b9571946b6f150ef5a672686a30e52be2d536bf3664550f60c99a89b81f3c911784d8a371ebea0b97ff50e2af68f822a72e9a76cf473bcc1cb81fe2a03051771b1c91f1e1a444ab6119c0a83b25a434fd598bc767315881aef9cb4d4c51ceadbb3b1a1142e0b87d5826b161233ce253d2adc9a00bd00e3cc21fff09abd919b54e09ba6b505601a358e50593dfa117eb2b8d7458745a25e7c7321cda0c432aa5bb41aab60eb3dc7e03ce4017b245809a534c3dfa49e97f4474689901e814a97fc0892ca04d0c00e3dfc836b36bbf74256e77525a031160fb3bf8ac31502c049d0a264140104c7488e36a46d23a76f4535b5902677cb98a5abec57b9357b0cb3b36b68349b273a2f8396e6c8594b4a32f0aa8a622378b3ca0426f44443942c02162907b2651ac2168fd1279b040192716bb584211df4ba36cb363b8c3adc39b410977ae3cac26c21470426837a43b821f65d8ee1950c87b4765a034aba1a35579f4148b8c2f39949812cf9d850d5e25be7713ce62ba31366737c03ad45f23e9b226d1835c5ab01c081063dc193630d72821cfa2a56d16108c40ffc483177d075b6a7a1bbf5cac7da0834d755acd10b9b9850a7c97d90a1061ce94efa4b0c0707339dbc7f160a45eeec022815a4494334254c08ade388c07c34e3a07e51ea60fdeb9b20b4b9afdc6c3c2b63e872aac9b2a90b798bc2dc8d585c69c1b33c1d51372c583e835b9ed561c218a2968c044051f8a969a7b2db6a7031d20cc9e024bbaab4385a3ae13ca264c25f6c5b4170b5c0da13044664a10f335ae9045bd6319abe139bb2b8b635bb06e2f48427e256a16a0f71f119230a9acfb19f0fe07c71828063f42a844a5c703aab9a844f689944ead511d8c97127d99429fc87ede190e0fa002261494076b7a10496dbe12919f585685733ae780eab3ac168287aae3842cfb637a94483f68170f6a3092d51b82ef10496a6374572a527aa7a7d1a99315953f625842ec0bc8851180b98cbe411453027c9b8a4a07fc3bbe32b897fc09e5e65a0457556a8b28e5b7c8b28db24e5431893953c912c195ca52db5d125c3f595f2ea75a63b6c83c8cbca257824ac60ce16bb5be02b30488974a22a66d37b19531e3cf17b59bb43d738cea25326dbd6355243ceff3caae98446927351ff623260472f8c7a715016ca5480af5cecc001c6b65f41221b16bfa61863e225709775b5e6393e4b71920c0c539c6bc5ec5c609466000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 7c06bbeca8b58423e2ad420ec36064ed42c881e3655668f8865a2d643ecd1a4eecf915b6c64b37c98947f06c3ccc8e00bbd16017c246db88cc83f12c887aaad7db61b4d567c285841689169c3f928f1d178a0ddae50d8c46cfd95258667d6239c300595738defd2e806637ca46baa4c6c7b97f1a9b47d53cba9ffe074f88d104c4971d250d085b1800fcbd91584d8cc48e145fc81438290d74765e7ee8c1605e8048b37b9d22b050791fe008b9b84b7f23b0f49955e32c0eef78d7a3a0b2effe8b37d124e19d4cb6f6914204598a525239d9baa116e1c9c39c47f9f37f965941b2aef8519782c65f3ad3a6509d1e31e7efb67db21911e4edeb1f7e9c37b3f852c81d63a95e4775e3f2a8ff315a214680adf44d290e42ebab8ca95bf471140b9d7e03f5e9f97864289a0ae8c9a105e00409f714e413b69be366303b4a138ed51264ab0e5cca5f6dc9387c6608109e8859893efa3bc7384e9f418468b1078807dadb768e254094039d1b807d67353c8e0b5a03d28b8e41ffa0eb3ce0837a132144597908f7a059a097b79a1bac323757324e907b445d064e25c378d2069e7c5d671036871e4fe36705747635e40c6e835319e3ff81714cacc44515d671b703c5581dc76afca0b881f37c1ffc93f2e4afab1e8ac776ca883f3adf7f9ab99396f7e19541c26342a7d5618958523b81871326c357ad84ccc6d3574d97cbd875524e7b08a102263d80f318a48e510c22126568f76936c904c231700ad042d73137eec741c827a082de4a45d296745c55b8367719dd08b8295e38d8d3894b9f8e2f9b483b266e1fc71d6374353ca7d9ed1c6b73ab5a42f6abff7b2ba8fd484d1ae6928b5ea92ea3577be01dc1e88abcd0886eb771dca4d36e91c45bca4807c89736b7d6a927cf64b22c5f323077f5488f6044976f310b4b99f7d486335dcca60571157ac0e480a4dba79a826b4bac3dcb7327a33b16381eb41e1d39915e91a58750ceb71098ec7f1a2d7e44d4bab75bb7482eec277df206502c497eaa345109a145a4da6bed1900b680ad12fb028d33563bfb204ecf66e6ead587c5fe27f8a2eb0e27471925ea0f35eb9d5e53ef801eba3acaaa7790b105eb6128ace992668181c1d7cf203afdccdfefbac67dbd97cad05d499239df84e4cf7372117932c973957e5c70a8520f822be430758990296877df62069d818768513d14df0568be8e63e123bdde35036dcc69a98197f52dfbaae5e5e0cee4a48c67fdda605dad8a27651625c2b35e81dfcacd2a41a6d17f6d7067a67faf2479b3868673b248270f4a2d8ee26de9c787ce966ecf186c1401ad9d3bbf2c43b1d5de32bdd77f5433f4325427254a13985d733ab0863e62a4f3d484ab3f5d3b88f23049079143b058babffc8367cebdd9d2468d7af782979a3ef12841370da6ef2db03679e6bca0db72166c361adfbfc02234119abaf98d4fea8ddc6e8490c2fb5a1be4806a61bc7b36884cf4631cfd53138a23fdda11e597aed323748314282672473a1819ef2b9488f6744544ad
shared_secret: c9d0cf3edb1172344364afec3615ba98477ce9316f92ca46ca5f42b73553a9f5
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 2fe6b9cf4510f212839e348d671b3345da68a477f57513ce363414e87299a717
public_key = 7dd722a23522b0d8cb522a67d63a75af305c05f3659bc496f1c47e410582a0e58bbba80751bb2f5ab71414051627f46a78f9708e3139f8950b999378df4709a08b9b511982ab1b2cc4d51d177578ef263c8e12752f914733023d9e8068d4fc1aac34106fa72197f6b4e4bb26ab29ab64d7c848f98ef5557ec2b35edea70b67c084193921d8cb52e132a24372be7046aa2af66696007e2e0830df1c7b4396bcc8f27aca46932c463b49db0ed88882f3a45901a4b96ee3b74e78afb8dbae7bc653be895179f208c27c6ecd60c26e54152aecbc13bb5ece39840574c56fb39fd2385c76d62c59a41b3311702d5a99e366467b6c4f6c252a95db32e5096e61d1ba872924d358b346dc099a485c3df72a94e437a82a6cd778888995c473c203e091309ba42511950c19db3acbc5987259bea952b5a549839f197d7bf64ca0772cc1dc89572a0e04690fe651a79ffb3dc07388c30c06711c6b25572bbc83ba868a379d54c6439754bcd67c9b0364ab3790967a062948084ab33a80ac5971fa99830aa7d1e9263e7087af67ab6a83ab34f405dbd72b3fe46e9f2114e26cc6643b6d3adb9de63090394213e72b64ecbb2242266139579ea9cab2e51868ef82ababaac38e7ca0b9554d665365dd8b0b58f3020cc9218b866955f54d9f7b9af9634ab995a0b5e234fcc78cd1594e1cb8a845ca0cdbc82e3fbb35414c53423b76875ab267a702d51710149061e7655a0168695053aa61b990fa9439883640e7600345033ca90678925b1d632962deaa0ef5642b870610be3387eda90cf608254dc2b000c06632331680e12e9b277597d07633a31f6445318ac7b9cc1b087cb58bddd30a07ea6e1b1429950b7e7efb1a6b88b037c92cf987c904268ce39cba4bd3c163f5a8bdb9698488152a18b02bc98a83fb6c28a55a018b48979660ad5b42281b8745a4bdcb02cabd16735ab1523916adcb031e34ccbf4c50bf61bb7d562804d4104d3f6ac183f447e6608acb0bc40a34ada4897e9a91c542571877931864b612cec01c88010cbe039d42540835422f5900c944c7025ba3365543536d093a68c27abe1175bc227faa590f8fb8ca9ab1a87366574422379fd8659fe5bb5ec76e179666adebcedc7b54f1aa9388b2907a4ba5c48441ad90499c64a57768631d4a961d88976c816adb897da7715a100c75099cc122f3b1df183385673a3bbc98cbb0ccb0b090b3517993815e3f6b26b984bdda32c11947b2fa5411004c2c41f2a646036b86bba618e72be7f97ec6369af5ca2ab2dc9493d9078a0c8598841385205177c80a3be42a31d1166b02cd1dd2871148033c794242962e8645ae2e4867a3e5c74f71a1d978379ad45f7fa5c70066cbfc4cbfbe05cf23612b2dea551cc52dd90a8468ec771ff071371544e96400e288a82e9c9eefe807d6f4903ac567741abeaec9707533b38dd8c4366bb33cf86f77272478e43a2d8061293332c8d805a4516238d5ad1934a9683655674aa6b6d91610d4c82e966d74c41dfe7ac18e993c22d59b2d286a0b5272cd44988510b9b342405757a25731729e934c58c601f5c311a244a24dbcc772088a20dac4c8410167304fda18445f6c6126b9645d4042d6033419d246968848e1f5000000000000000000000000000000000000000000000000000000
result: pass
ciphertext: 83ea5ed982570cd981b7430de924469d4e2faba68e03261a74f5114ab8c448376cfcd1b9cb3e72bb031bf0fefe772bc40888abc6acffc1d335d46d267acde2cb89cf1b3c67a139796d6a5763805d5edcebb81070b44ffe021b6c2b3c6c3d5dfb6d9e546930223ab0139990c6c5d6257520fe394a3aa30c6a71d47f415ac86b68eb8c83b131a3c5cbf051971fef5ef3bda355d3868e71ed8a0e2c6de8a759bc0c9e760277cc2c04c783d29d1ad3d3385accb85cc88c39bc8348f84dd8c714c5feda50b0770414a333136d6678be6ccbc5df488bafdcade883fbb310c99cc648493aed72680fe1e43c0cf523d3dd06417d29dd97c98ce53089505d36a476c0ae6d89b165c3ff6b2c62ba954fb81ac5782ae648a6802bc057c64fabd3726559ba79de9c144aaa525f6a840ed55abf21b37231c6c4cbb0110fdbcd0004f6f4974ec644c33a8aea34ef4a0a146f7502650c3def5a313d2f309cb428880502d3bdf39196a99bee296f9231d87972efd1159d3cf59bea05f0d0373a0e218ee5e0528e1ac7132440980d1153b9423bb2e099d05fbc8241ec1f316bf0add575a69982f546e99c64457c12ac83951ad46a5f024f6a61c91b7d3853ba1fa41d5a95f6ca811610ba3f32addf011ea4091ef217cdd126ec5e45cc40ec6f1292602b16c02718419646370e5b2c7c55c1128fc5d6c767cc75248b79e2379d40f91a8617e8a3db43c42cabb5cd39a7a7969147f30344c4b03de7034b12d8a1c3639697c97c4483e4191ca0fa81d8659f40e31b899b4ef4610644b1314ab2ef14b8dd8dc0082826fe65dc17211572cb14fa376f1b1784a00033c8dcddc44d6a1128a200eea668b6516ba42585cbb2e2be2a42148120013d0a9378ed7c185071fa8fdc09102164c63a665fd09c08d34104c9abb64e394b2e2a00dd834f7c7f5de16f6c02906ae37acc923dd76e530c78f2143396bfc371d14e6c48bec072b6b4e18eeae967456beb3f897a06eae17de174cf09be1435e691350632c0b1eac69dd66549c1d980fb147fa295ca6f21b5dc398e63a7c4263c75b55c85b4f38fbd7cc0fad84aba90dda1f2c9ca88d88905602096162486dba1ed0a8caa6b897c99e25934152a35fd0d476de09fb211abf36565af3744f3fb737247f5d8f172fbf438ed04422a6b3e17bdfe2cb0f09a1d57f1f1a113a768697f23d61ab288f15abc760feb0f5c5d4d5c0b1c891d3dad6089a3b7e54516b8f9755d38430312cf17b21efeeecbfd2719b62480225b9b3ee8940b1f1784ed5630d152635a1233acdd16e5489a9a15eafa7bec99aff25b18d9cac1e726c9e424773a7083f213cea53dcd310b0037aecbde1d584657f32cf548a6872c6f5a1a3a70d4db29ee3773291c94b00b5a596e1691f7752e246ca0960561cd233ec7d5f54496d34ba65b359a856315f02d16c990cdf3db2051b17bf283fed1b808ac79a9ce8250c806896bf75f2cfe76465c09360aba4c9688acea341fe755363abe41c0cba3ebad00c6c7bcc3f7ce091f87079f60094b92
shared_secret: 4bb6a6b27596869efae3d411c69c593afff99b1a703ee1f4ff3e0e7e9756e75b
# Rho leads to a matrix with unusally large entries
# Rho leads to a matrix with unusually large entries
entropy: 86630b4f72820d19e9941784183b3a0d770609becd6fe0dc463cb6edac432d59
public_key = 59b479b444b510d9b6d89b7001b237f4a34c57509f69208c7e6b956144bedc8b2d19b12c1baa725dd106f5418ed943370050808ed2636fa634add059541a7a8c7976b0990e59c20c00343d1c37bc3ab587e312991bb88a74227651b340346c58bbb174ac18c204f37445681bc5905354d834f86016d0921219fb467d829daf24901815666d664b8c4aae307485cb95885b7cb9125a14d4d988d3a42c0816ba7ef14de9b622e08871988b8c02d857626b65065551d5bcc81112384f979cd8d2b9ecb55c6afaa700e92e3ecbb285c01112a19cbdb90b8af135b235914c901e2314902a43c939d065481128f83ac801dc2fa69c912f2b69189736d72414df12646680c9c858a9afaa28b994531960b0f2b82fc6b9c6f10706930786ab5c6b0da61ae813cdb7387c27324499b111c6ca5767056070e608cf421af52cb45a842da82560dd86acf45a7e70245e0b535f7559a9fceb9369c44032c09302438cb4670925c7a831d52f083a7919e575be844d9e6a009957c15e6c5f84f050cc4801561876f9f483ded505b3c77a4a97788358801f012b59d716fed55975f8abd3464420d849d89c16dd2a95c372cf631a93a8897ddda2a038070adc2a97b5538778c0215cea399deb8279b2ade6c5ab84bbc8c6e181c091b7002a4d5f395bb60c817e03966b63ba76e88fb05b79d126ab0975c995b5bb2ae6550af78d80b96af40c9514f945d72b0c9602412242c81b60b2df97999fbbaec0404056195879535041231803aa7cf064b5fdfc8b86344d65eb30e52cc0d5b86947b8051ea93008d789914493b58abbd5395b657560f5823c387574db554118d06b26ba14b9660b4b390f8b828ba8a852870cba24a114a68094cf0168b721af8f0998e599b5db2135a3e9360b5754dd49155eea830f0035c2c116dbc9039cf69034c505ed998f8460a170eb5f09786d902664c8135ad77101d0b802248b6f3165a847b5c989131d7ee3135cbcb48b3cabfd100074c00f2e7bc85d4c84bec8980a6920e6f318a4bc805900b548fc7d98316c1b3c3b49f6c5d90595ff7a7b56465385620544aa3f39114e53581e851849726023d953b5df56b87be98854b253a39297f060449fc1c02725c3442a4ed8624f7f6abf3854cf04166b24c3b5a38358bae933ee4777df09720415314b152efc0b175b664c0c0a3521cac1817314d1e69fe03b351fe211c4c44639622a73a4547ef52d46b033aa52a79182baf49a8808fb259c048a04cc03f8a1038e9112eb30965c797f90c277b3549df4f757526351bd1a100767b4bcfa7489c17cb181b707986b9af85e766aa1f99b08aa2a7bc8a385d294277cb00d705b4ce2583e61c16be2b18445d051d7f0cee51703db3162bdd328cf0b0b24a424bd830c6574091088ab746a291c737e8cd595d1b51f9646c7813a8991f89c168489d1a3b61a82466d98ac9de55b4d5aa020243e638328fedbc93d341e1fdc7eb861bba3783a57c86a7184aaa7d5051b7018f3f18b40b69fd7780ae9609194db70123801729c561e973dff3a7ea5ba9045b24e5fe5bc63ea858c687184a8276612c80ab600cc37699583b9ffa8c5a1b7934f3c12873522dd1c4f976b73121bb79766803d247de1dff18807000000000000000000000000000000000000000000000000000000
result: pass
+1 -1
View File
@@ -822,7 +822,7 @@ internet 6 : snmpv2 : SNMPv2
# Documents refer to "internet 7" as "mail". This however leads to ambiguities
# with RFC 2798, Section 9.1.3, where "mail" is defined as the short name for
# rfc822Mailbox. The short name is therefore here left out for a reason.
# Subclasses of "mail", e.g. "MIME MHS" don't consitute a problem, as
# Subclasses of "mail", e.g. "MIME MHS" don't constitute a problem, as
# references are realized via long name "Mail" (with capital M).
internet 7 : : Mail
+2 -2
View File
@@ -1,5 +1,5 @@
The perl scripts in this directory are my 'hack' to generate
multiple different assembler formats via the one origional script.
multiple different assembler formats via the one original script.
The way to use this library is to start with adding the path to this directory
and then include it.
@@ -35,7 +35,7 @@ Functions of interest are:
&function_begin_B(name,extra) Same as normal function_begin but no pushing.
&function_end(name) Call at end of function.
&function_end_A(name) Standard pop and ret, for use inside functions
&function_end_B(name) Call at end but with poping or 'ret'.
&function_end_B(name) Call at end but with popping or 'ret'.
&swtmp(num) Address on stack temp word.
&wparam(num) Parameter number num, that was push
in C convention. This all works over pushes
+1 -1
View File
@@ -187,7 +187,7 @@ uint64_t CRYPTO_get_fork_generation(void) { return 0xc0ffee; }
// These platforms may fork, but we do not have a mitigation mechanism in
// place. Returning a constant zero value makes BoringSSL assume that address
// space duplication could have occured on any call entropy must be added to
// space duplication could have occurred on any call entropy must be added to
// every RAND_bytes call.
uint64_t CRYPTO_get_fork_generation(void) { return 0; }
+1 -1
View File
@@ -1427,7 +1427,7 @@ TEST(RSATest, Threads) {
}
// This test might be excessively slow on slower CPUs or platforms that do not
// expect server workloads. It is disabled by default and reenabled on some
// expect server workloads. It is disabled by default and re-enabled on some
// platforms when running tests standalone via all_tests.go.
//
// Additionally, even when running disabled tests standalone, limit this to
+2 -2
View File
@@ -80,8 +80,8 @@ int SHA512_Update(SHA512_CTX *sha, const void *data, size_t len) {
}
int SHA512_Final(uint8_t out[SHA512_DIGEST_LENGTH], SHA512_CTX *sha) {
// Historically this function retured failure if passed NULL, even
// though other final functions do not.
// Historically this function returned failure if passed NULL, even though
// other final functions do not.
if (out == nullptr) {
return 0;
}
+1 -1
View File
@@ -360,7 +360,7 @@ static size_t left_idx(size_t idx) {
// |ptrdiff_t|, a signed type, is the same size as |size_t|, this cannot
// overflow.
assert(idx <= PTRDIFF_MAX);
static_assert(PTRDIFF_MAX <= (SIZE_MAX - 1) / 2, "2 * idx + 1 may oveflow");
static_assert(PTRDIFF_MAX <= (SIZE_MAX - 1) / 2, "2 * idx + 1 may overflow");
return 2 * idx + 1;
}
+2 -2
View File
@@ -90,7 +90,7 @@ static void ForEachMismatch(const CallerState &a, const CallerState &b,
#if defined(SUPPORTS_UNWIND_TEST)
// We test unwind metadata by running the function under test with the trap flag
// set. This results in |SIGTRAP| and |EXCEPTION_SINGLE_STEP| on Linux and
// Windows, respectively. We hande these and verify libunwind or the Windows
// Windows, respectively. We handle these and verify libunwind or the Windows
// unwind APIs unwind successfully.
// IsAncestorStackFrame returns true if |a_sp| is an ancestor stack frame of
@@ -104,7 +104,7 @@ static bool IsAncestorStackFrame(crypto_word_t a_sp, crypto_word_t b_sp) {
#endif
}
// Implement some string formatting utilties. Ideally we would use |snprintf|,
// Implement some string formatting utilities. Ideally we would use |snprintf|,
// but this is called in a signal handler and |snprintf| is not async-signal-
// safe.
+1 -1
View File
@@ -185,7 +185,7 @@ $code .= <<____ if (!$win64);
movq $unwind, $unwind_offset(%rsp)
____
# Store our caller's state. This is needed because we modify it ourselves, and
# also to isolate the test infrastruction from the function under test failing
# also to isolate the test infrastructure from the function under test failing
# to save some register.
$code .= store_caller_state($caller_state_offset, "%rsp", sub {
my ($off, $reg) = @_;
+1 -1
View File
@@ -77,7 +77,7 @@
// number in any output. |PrintLine| does this automatically.
//
// Each attribute in a test and all instructions applying to it must be
// consumed. When a test completes, if any attributes or insturctions haven't
// consumed. When a test completes, if any attributes or instructions haven't
// been processed, the framework reports an error.
class FileTest;
+2 -2
View File
@@ -262,7 +262,7 @@ static int process_certificate_policies(const X509 *x509,
}
// This does the same thing as RFC 5280, section 6.1.3, step (d), though in
// a slighty different order. |level| currently contains
// a slightly different order. |level| currently contains
// "expected_policy_set" values of the previous level. See
// |process_policy_mappings| for details.
const int previous_level_has_any_policy = level->has_any_policy;
@@ -348,7 +348,7 @@ static int delete_if_mapped(X509_POLICY_NODE *node, void *data) {
// with P1 in |parent_policies|.
//
// This is equivalent to the |X509_POLICY_LEVEL| that would result if the next
// certificats contained anyPolicy. |process_certificate_policies| will filter
// certificates contained anyPolicy. |process_certificate_policies| will filter
// this result down to compute the actual level.
static X509_POLICY_LEVEL *process_policy_mappings(const X509 *cert,
X509_POLICY_LEVEL *level,
+2 -2
View File
@@ -203,8 +203,8 @@ ASN1_INTEGER *s2i_ASN1_INTEGER(const X509V3_EXT_METHOD *method,
} else {
// Decoding from decimal scales quadratically in the input length. Bound the
// largest decimal input we accept in the config parser. 8,192 decimal
// digits allows values up to 27,213 bits. Ths exceeds the largest RSA, DSA,
// or DH modulus we support, and those are not usefully represented in
// digits allows values up to 27,213 bits. This exceeds the largest RSA,
// DSA, or DH modulus we support, and those are not usefully represented in
// decimal.
if (strlen(value) > 8192) {
BN_free(bn);
+1 -1
View File
@@ -25,7 +25,7 @@
// Limit to ensure we don't overflow: much greater than
// anything enountered in practice.
// anything encountered in practice.
#define NAME_ONELINE_MAX (1024 * 1024)
+1 -1
View File
@@ -2827,7 +2827,7 @@ TEST(X509Test, TestFromBufferReused) {
ASSERT_TRUE(PEMToDER(&data2, &data2_len, kLeafPEM));
EXPECT_EQ(root->buf, buf.get());
// Historically, this function tested the interaction betweeen
// Historically, this function tested the interaction between
// |X509_parse_from_buffer| and object reuse. We no longer support object
// reuse, so |d2i_X509| will replace |raw| with a new object. However, we
// retain this test to verify that releasing objects from |d2i_X509| works
+3 -3
View File
@@ -54,8 +54,8 @@ int X509_NAME_get_text_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj,
}
CBS cbs;
CBS_init(&cbs, text, text_len);
// Fail if the UTF-8 encoding constains a 0 byte because this is
// returned as a C string and callers very often do not check.
// Fail if the UTF-8 encoding contains a 0 byte because this is returned as a
// C string and callers very often do not check.
if (CBS_contains_zero_byte(&cbs)) {
goto out;
}
@@ -92,7 +92,7 @@ int X509_NAME_get_index_by_NID(const X509_NAME *name, int nid, int lastpos) {
return X509_NAME_get_index_by_OBJ(name, obj, lastpos);
}
// NOTE: you should be passsing -1, not 0 as lastpos
// NOTE: you should be passing -1, not 0 as lastpos
int X509_NAME_get_index_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj,
int lastpos) {
if (name == nullptr) {
+1 -1
View File
@@ -42,7 +42,7 @@ static int crl_lookup(X509_CRL *crl, X509_REVOKED **ret,
const ASN1_INTEGER *serial, X509_NAME *issuer);
// The X509_CRL_INFO structure needs a bit of customisation. Since we cache
// the original encoding the signature wont be affected by reordering of the
// the original encoding the signature won't be affected by reordering of the
// revoked field.
static int crl_inf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
void *exarg) {
+4 -4
View File
@@ -428,7 +428,7 @@ Lsqr8x_outer_loop:
adc x24,x24,x15
adds x24,x24,x16
sub x14,x3,x5 // rewinded ap
sub x14,x3,x5 // rewound ap
adc x25,xzr,xzr // t[14]
add x25,x25,x17
@@ -775,7 +775,7 @@ Lsqr8x_tail:
// to be zero at this point
ldp x6,x7,[x2,#8*0]
sub x27,x3,x1 // done yet?
sub x16,x3,x5 // rewinded np
sub x16,x3,x5 // rewound np
ldp x8,x9,[x2,#8*2]
ldp x10,x11,[x2,#8*4]
ldp x12,x13,[x2,#8*6]
@@ -1115,7 +1115,7 @@ Loop_mul4x_1st_tail:
//adc x0,x0,xzr
cbnz x28,Loop_mul4x_1st_tail
sub x11,x27,x5 // rewinded x1
sub x11,x27,x5 // rewound x1
cbz x10,Lmul4x_proceed
ldp x6,x7,[x1,#8*0]
@@ -1257,7 +1257,7 @@ Loop_mul4x_tail:
//adc x0,x0,xzr
cbnz x28,Loop_mul4x_tail
sub x11,x3,x5 // rewinded np?
sub x11,x3,x5 // rewound np?
adc x0,x0,xzr
cbz x10,Loop_mul4x_break
+4 -4
View File
@@ -428,7 +428,7 @@ __bn_sqr8x_mont:
adc x24,x24,x15
adds x24,x24,x16
sub x14,x3,x5 // rewinded ap
sub x14,x3,x5 // rewound ap
adc x25,xzr,xzr // t[14]
add x25,x25,x17
@@ -775,7 +775,7 @@ __bn_sqr8x_mont:
// to be zero at this point
ldp x6,x7,[x2,#8*0]
sub x27,x3,x1 // done yet?
sub x16,x3,x5 // rewinded np
sub x16,x3,x5 // rewound np
ldp x8,x9,[x2,#8*2]
ldp x10,x11,[x2,#8*4]
ldp x12,x13,[x2,#8*6]
@@ -1115,7 +1115,7 @@ __bn_mul4x_mont:
//adc x0,x0,xzr
cbnz x28,.Loop_mul4x_1st_tail
sub x11,x27,x5 // rewinded x1
sub x11,x27,x5 // rewound x1
cbz x10,.Lmul4x_proceed
ldp x6,x7,[x1,#8*0]
@@ -1257,7 +1257,7 @@ __bn_mul4x_mont:
//adc x0,x0,xzr
cbnz x28,.Loop_mul4x_tail
sub x11,x3,x5 // rewinded np?
sub x11,x3,x5 // rewound np?
adc x0,x0,xzr
cbz x10,.Loop_mul4x_break
+4 -4
View File
@@ -432,7 +432,7 @@ Lsqr8x_outer_loop:
adc x24,x24,x15
adds x24,x24,x16
sub x14,x3,x5 // rewinded ap
sub x14,x3,x5 // rewound ap
adc x25,xzr,xzr // t[14]
add x25,x25,x17
@@ -779,7 +779,7 @@ Lsqr8x_tail:
// to be zero at this point
ldp x6,x7,[x2,#8*0]
sub x27,x3,x1 // done yet?
sub x16,x3,x5 // rewinded np
sub x16,x3,x5 // rewound np
ldp x8,x9,[x2,#8*2]
ldp x10,x11,[x2,#8*4]
ldp x12,x13,[x2,#8*6]
@@ -1121,7 +1121,7 @@ Loop_mul4x_1st_tail:
//adc x0,x0,xzr
cbnz x28,Loop_mul4x_1st_tail
sub x11,x27,x5 // rewinded x1
sub x11,x27,x5 // rewound x1
cbz x10,Lmul4x_proceed
ldp x6,x7,[x1,#8*0]
@@ -1263,7 +1263,7 @@ Loop_mul4x_tail:
//adc x0,x0,xzr
cbnz x28,Loop_mul4x_tail
sub x11,x3,x5 // rewinded np?
sub x11,x3,x5 // rewound np?
adc x0,x0,xzr
cbz x10,Loop_mul4x_break
+1 -1
View File
@@ -1199,7 +1199,7 @@ Lseal_hash_extra_load:
subs x4, x4, #1
b.gt Lseal_hash_extra_load
// Hash in the final padded extra_in blcok
// Hash in the final padded extra_in block
mov x11, v20.d[0]
mov x12, v20.d[1]
adds x8, x8, x11
+1 -1
View File
@@ -1199,7 +1199,7 @@ chacha20_poly1305_seal:
subs x4, x4, #1
b.gt .Lseal_hash_extra_load
// Hash in the final padded extra_in blcok
// Hash in the final padded extra_in block
mov x11, v20.d[0]
mov x12, v20.d[1]
adds x8, x8, x11
+1 -1
View File
@@ -1203,7 +1203,7 @@ Lseal_hash_extra_load:
subs x4, x4, #1
b.gt Lseal_hash_extra_load
// Hash in the final padded extra_in blcok
// Hash in the final padded extra_in block
mov x11, v20.d[0]
mov x12, v20.d[1]
adds x8, x8, x11
+1 -1
View File
@@ -169,7 +169,7 @@ OPENSSL_EXPORT const EVP_AEAD *EVP_aead_aes_128_gcm_randnonce(void);
OPENSSL_EXPORT const EVP_AEAD *EVP_aead_aes_256_gcm_randnonce(void);
// EVP_aead_aes_128_ccm_bluetooth is AES-128-CCM with M=4 and L=2 (4-byte tags
// and 13-byte nonces), as decribed in the Bluetooth Core Specification v5.0,
// and 13-byte nonces), as described in the Bluetooth Core Specification v5.0,
// Volume 6, Part E, Section 1.
OPENSSL_EXPORT const EVP_AEAD *EVP_aead_aes_128_ccm_bluetooth(void);
+1 -1
View File
@@ -56,7 +56,7 @@
// https://lpc.events/event/7/contributions/729/attachments/496/903/CET-LPC-2020.pdf
//
// cet.h defines _CET_ENDBR which is used to mark function entry points for IBT.
// and adds the assembly marker. The value of _CET_ENDBR is made dependant on if
// and adds the assembly marker. The value of _CET_ENDBR is made dependent on if
// '-fcf-protection' is passed to the compiler. _CET_ENDBR is only required when
// the function is the target of an indirect jump, but BoringSSL chooses to mark
// all assembly entry points because it is easier, and allows BoringSSL's ABI
+2 -2
View File
@@ -757,7 +757,7 @@ OPENSSL_EXPORT ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out,
//
// WARNING: This function affects global state in the library. If two libraries
// in the same address space register information for the same OID, one call
// will fail. Prefer directly passing the desired parametrs to
// will fail. Prefer directly passing the desired parameters to
// |ASN1_mbstring_copy| or |ASN1_mbstring_ncopy| instead.
OPENSSL_EXPORT int ASN1_STRING_TABLE_add(int nid, long minsize, long maxsize,
unsigned long mask,
@@ -931,7 +931,7 @@ OPENSSL_EXPORT int ASN1_BIT_STRING_set(ASN1_BIT_STRING *str,
// ASN1_BIT_STRING_set_bit sets bit |n| of |str| to one if |value| is non-zero
// and zero if |value| is zero, resizing |str| as needed. It then truncates
// trailing zeros in |str| to align with the DER represention for a bit string
// trailing zeros in |str| to align with the DER representation for a bit string
// with named bits. It returns one on success and zero on error. |n| is indexed
// beginning from zero.
OPENSSL_EXPORT int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *str, int n,
+1 -1
View File
@@ -183,7 +183,7 @@ extern "C" {
// C and C++ handle inline functions differently. In C++, an inline function is
// defined in just the header file, potentially emitted in multiple compilation
// units (in cases the compiler did not inline), but each copy must be identical
// to satsify ODR. In C, a non-static inline must be manually emitted in exactly
// to satisfy ODR. In C, a non-static inline must be manually emitted in exactly
// one compilation unit with a separate extern inline declaration.
//
// In both languages, exported inline functions referencing file-local symbols
+2 -2
View File
@@ -175,7 +175,7 @@ OPENSSL_EXPORT int CBS_get_u64_decimal(CBS *cbs, uint64_t *out);
// compiler, the following functions act on tag-length-value elements in the
// serialization itself. Thus the caller is responsible for looping over a
// SEQUENCE, branching on CHOICEs or OPTIONAL fields, checking for trailing
// data, and handling explict vs. implicit tagging.
// data, and handling explicit vs. implicit tagging.
//
// Tags are represented as |CBS_ASN1_TAG| values in memory. The upper few bits
// store the class and constructed bit, and the remaining bits store the tag
@@ -645,7 +645,7 @@ OPENSSL_EXPORT int CBB_add_asn1_bool(CBB *cbb, int value);
// CBB_add_asn1_oid_from_text decodes |len| bytes from |text| as an ASCII OID
// representation, e.g. "1.2.840.113554.4.1.72585", and writes the DER-encoded
// contents to |cbb|. It returns one on success and zero on malloc failure or if
// |text| was invalid. It does not include the OBJECT IDENTIFER framing, only
// |text| was invalid. It does not include the OBJECT IDENTIFIER framing, only
// the element's contents.
//
// This function considers OID strings with components which do not fit in a
+1 -1
View File
@@ -39,7 +39,7 @@ extern "C" {
DECLARE_STACK_OF(X509)
// CMS_* are flags that can be passed to functions in this library. Their
// interpretation is specified in the corresponding functinos.
// interpretation is specified in the corresponding functions.
#define CMS_NOCERTS 0x2
#define CMS_DETACHED 0x40
#define CMS_BINARY 0x80
+1 -1
View File
@@ -100,7 +100,7 @@ OPENSSL_EXPORT int FIPS_mode(void);
// fips_counter_t denotes specific APIs/algorithms. A counter is maintained for
// each in FIPS mode so that tests can be written to assert that the expected,
// FIPS functions are being called by a certain peice of code.
// FIPS functions are being called by a certain piece of code.
enum fips_counter_t {
fips_counter_evp_aes_128_gcm = 0,
fips_counter_evp_aes_256_gcm = 1,
+1 -1
View File
@@ -256,7 +256,7 @@ OPENSSL_EXPORT int EVP_add_digest(const EVP_MD *digest);
OPENSSL_EXPORT const EVP_MD *EVP_get_digestbyname(const char *);
// EVP_dss1 returns the value of EVP_sha1(). This was provided by OpenSSL to
// specifiy the original DSA signatures, which were fixed to use SHA-1. Note,
// specify the original DSA signatures, which were fixed to use SHA-1. Note,
// however, that attempting to sign or verify DSA signatures with the EVP
// interface will always fail.
OPENSSL_EXPORT const EVP_MD *EVP_dss1(void);
+2 -2
View File
@@ -342,7 +342,7 @@ OPENSSL_EXPORT int EC_encode_to_curve_p384_xmd_sha384_sswu(
// EC_GROUP_free releases a reference to |group|, if |group| was created by
// |EC_GROUP_new_curve_GFp|. If |group| is static, it does nothing.
//
// This function exists for OpenSSL compatibilty, and to manage dynamic
// This function exists for OpenSSL compatibility, and to manage dynamic
// |EC_GROUP|s constructed by |EC_GROUP_new_curve_GFp|. Callers that do not need
// either may ignore this function.
OPENSSL_EXPORT void EC_GROUP_free(EC_GROUP *group);
@@ -351,7 +351,7 @@ OPENSSL_EXPORT void EC_GROUP_free(EC_GROUP *group);
// was created by |EC_GROUP_new_curve_GFp|. If |group| is static, it simply
// returns |group|.
//
// This function exists for OpenSSL compatibilty, and to manage dynamic
// This function exists for OpenSSL compatibility, and to manage dynamic
// |EC_GROUP|s constructed by |EC_GROUP_new_curve_GFp|. Callers that do not need
// either may ignore this function.
OPENSSL_EXPORT EC_GROUP *EC_GROUP_dup(const EC_GROUP *group);
+1 -1
View File
@@ -265,7 +265,7 @@ enum {
ERR_NUM_LIBS
};
// The following reason codes used to denote an error occuring in another
// The following reason codes used to denote an error occurring in another
// library. They are sometimes used for a stack trace.
#define ERR_R_SYS_LIB ERR_LIB_SYS
#define ERR_R_BN_LIB ERR_LIB_BN
+7 -6
View File
@@ -110,10 +110,11 @@ OPENSSL_EXPORT int EVP_PKEY_bits(const EVP_PKEY *pkey);
#define EVP_PKEY_ML_DSA_87 NID_ML_DSA_87
// EVP_PKEY_id returns the type of |pkey|, which is one of the |EVP_PKEY_*|
// values above. These type values generally corresond to the algorithm OID, but
// not the parameters, of a SubjectPublicKeyInfo (RFC 5280) or PrivateKeyInfo
// (RFC 5208) AlgorithmIdentifier. Algorithm parameters can be inspected with
// algorithm-specific accessors, e.g. |EVP_PKEY_get_ec_curve_nid|.
// values above. These type values generally correspond to the algorithm OID,
// but not the parameters, of a SubjectPublicKeyInfo (RFC 5280) or
// PrivateKeyInfo (RFC 5208) AlgorithmIdentifier. Algorithm parameters can be
// inspected with algorithm-specific accessors, e.g.
// |EVP_PKEY_get_ec_curve_nid|.
OPENSSL_EXPORT int EVP_PKEY_id(const EVP_PKEY *pkey);
@@ -294,7 +295,7 @@ OPENSSL_EXPORT EVP_PKEY *EVP_PKEY_from_subject_public_key_info(
// Prefer |EVP_PKEY_from_subject_public_key_info| instead. This function has
// several pitfalls:
//
// Callers are expected to handle trailing data retuned from |cbs|, making more
// Callers are expected to handle trailing data returned from |cbs|, making more
// common cases error-prone.
//
// There is also no way to pass in supported algorithms. This function instead
@@ -331,7 +332,7 @@ OPENSSL_EXPORT EVP_PKEY *EVP_PKEY_from_private_key_info(
// Prefer |EVP_PKEY_from_private_key_info| instead. This function has
// several pitfalls:
//
// Callers are expected to handle trailing data retuned from |cbs|, making more
// Callers are expected to handle trailing data returned from |cbs|, making more
// common cases error-prone.
//
// There is also no way to pass in supported algorithms. This function instead
+2 -1
View File
@@ -33,7 +33,8 @@ extern "C" {
// |EVP_PKEY_derive_init|.
// EVP_PKEY_HKDEF_MODE_* define "modes" for use with |EVP_PKEY_CTX_hkdf_mode|.
// The mispelling of "HKDF" as "HKDEF" is intentional for OpenSSL compatibility.
// The misspelling of "HKDF" as "HKDEF" is intentional for OpenSSL
// compatibility.
#define EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND 0
#define EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY 1
#define EVP_PKEY_HKDEF_MODE_EXPAND_ONLY 2
+1 -2
View File
@@ -176,8 +176,7 @@ OPENSSL_EXPORT int PKCS7_type_is_encrypted(const PKCS7 *p7);
// PKCS7_type_is_enveloped returns zero.
OPENSSL_EXPORT int PKCS7_type_is_enveloped(const PKCS7 *p7);
// PKCS7_type_is_signed returns one. (We only supporte signed data
// ContentInfos.)
// PKCS7_type_is_signed returns one. (We only support signed data ContentInfos.)
OPENSSL_EXPORT int PKCS7_type_is_signed(const PKCS7 *p7);
// PKCS7_type_is_signedAndEnveloped returns zero.
+3 -3
View File
@@ -38,14 +38,14 @@ class OPENSSL_EXPORT Certificate {
// FromDER returns a certificate from an DER-encoded X.509 object in |der|.
// In the event of a failure, it will return no value, and |out_diagnostic|
// may be set to a string of human readable debugging information if
// information abou the failure is available.
// information about the failure is available.
static std::unique_ptr<Certificate> FromDER(
bssl::Span<const uint8_t> der, std::string *out_diagnostic);
// FromPEM returns a certificate from the first CERTIFICATE PEM block in
// |pem|. In the event of a failure, it will return no value, and
// |out_diagnostic| may be set to a string of human readable debugging
// informtion if informaiton about the failuew is available.
// information if information about the failure is available.
static std::unique_ptr<Certificate> FromPEM(
std::string_view pem, std::string *out_diagnostic);
@@ -57,7 +57,7 @@ class OPENSSL_EXPORT Certificate {
// may or may not be this, and may check other properties of the certificate.
bool IsSelfIssued() const;
// Validity specifies the temporal validity of a cerificate, expressed in
// Validity specifies the temporal validity of a certificate, expressed in
// POSIX time values of seconds since the POSIX epoch. The certificate is
// valid at POSIX time t in second granularity, where not_before <= t <=
// not_after.
+1 -1
View File
@@ -107,7 +107,7 @@ class OPENSSL_EXPORT VerifyError {
StatusCode Code() const;
// Index returns the certificate in the chain for which the error first
// occured, starting with 0 for the leaf certificate. Later certificates in
// occurred, starting with 0 for the leaf certificate. Later certificates in
// the chain may also exhibit the same error. If the error is not specific to
// a certificate, -1 is returned.
ptrdiff_t Index() const;
+1 -1
View File
@@ -138,7 +138,7 @@ struct AllowRedeclaringConstructor {};
//
// FooMutate(bssl::Span(vec));
//
// Note that Spans have value type sematics. They are cheap to construct and
// Note that Spans have value type semantics. They are cheap to construct and
// copy, and should be passed by value whenever a method would otherwise accept
// a reference or pointer to a container or array.
template <typename T, size_t N>
+5 -6
View File
@@ -1768,9 +1768,8 @@ OPENSSL_EXPORT STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *ssl);
//
// This is the same as |SSL_get_peer_cert_chain| except that this function
// always returns the full chain, i.e. the first element of the return value
// (if any) will be the leaf certificate. In constrast,
// |SSL_get_peer_cert_chain| returns only the intermediate certificates if the
// |ssl| is a server.
// (if any) will be the leaf certificate. In contrast, |SSL_get_peer_cert_chain|
// returns only the intermediate certificates if the |ssl| is a server.
OPENSSL_EXPORT STACK_OF(X509) *SSL_get_peer_full_cert_chain(const SSL *ssl);
// SSL_get0_peer_certificates returns the peer's certificate chain, or NULL if
@@ -2462,7 +2461,7 @@ enum ssl_ticket_aead_result_t BORINGSSL_ENUM_INT {
// ssl_ticket_aead_ignore_ticket indicates that the ticket should be ignored
// (i.e. is corrupt or otherwise undecryptable).
ssl_ticket_aead_ignore_ticket,
// ssl_ticket_aead_error indicates that a fatal error occured and the
// ssl_ticket_aead_error indicates that a fatal error occurred and the
// handshake should be terminated.
ssl_ticket_aead_error,
};
@@ -5018,7 +5017,7 @@ enum ssl_select_cert_result_t BORINGSSL_ENUM_INT {
// ssl_select_cert_retry indicates that the operation could not be
// immediately completed and must be reattempted at a later point.
ssl_select_cert_retry = 0,
// ssl_select_cert_error indicates that a fatal error occured and the
// ssl_select_cert_error indicates that a fatal error occurred and the
// handshake should be terminated.
ssl_select_cert_error = -1,
// ssl_select_cert_disable_ech indicates that, although an encrypted
@@ -6047,7 +6046,7 @@ enum ssl_compliance_policy_t BORINGSSL_ENUM_INT {
// dominate other considerations.
ssl_compliance_policy_wpa3_192_202304,
// ssl_compliance_policy_cnsa_202407 confingures a TLS connection to use:
// ssl_compliance_policy_cnsa_202407 configures a TLS connection to use:
// * For TLS 1.3, AES-256-GCM over AES-128-GCM over ChaCha20-Poly1305.
//
// I.e. it ensures that AES-GCM will be used whenever the client supports it.
+10 -10
View File
@@ -185,9 +185,9 @@ OPENSSL_EXPORT void X509_get0_uids(const X509 *x509,
// EXFLAG_BCONS indicates the certificate has a basic constraints extension.
#define EXFLAG_BCONS 0x1
// EXFLAG_KUSAGE indicates the certifcate has a key usage extension.
// EXFLAG_KUSAGE indicates the certificate has a key usage extension.
#define EXFLAG_KUSAGE 0x2
// EXFLAG_XKUSAGE indicates the certifcate has an extended key usage extension.
// EXFLAG_XKUSAGE indicates the certificate has an extended key usage extension.
#define EXFLAG_XKUSAGE 0x4
// EXFLAG_CA indicates the certificate has a basic constraints extension with
// the CA bit set.
@@ -744,7 +744,7 @@ OPENSSL_EXPORT int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **out,
// X509_CRL_get_REVOKED returns the list of revoked certificates in |crl|, or
// NULL if |crl| omits it.
//
// TOOD(davidben): This function was originally a macro, without clear const
// TODO(davidben): This function was originally a macro, without clear const
// semantics. It should take a const input and give const output, but the latter
// would break existing callers. For now, we match upstream.
OPENSSL_EXPORT STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl);
@@ -2119,7 +2119,7 @@ OPENSSL_EXPORT void GENERAL_NAME_set0_value(GENERAL_NAME *gen, int type,
// result.
//
// WARNING: This function is not const-correct. The return value should be
// const. Callers shoudl not mutate the returned object.
// const. Callers should not mutate the returned object.
OPENSSL_EXPORT void *GENERAL_NAME_get0_value(const GENERAL_NAME *gen,
int *out_type);
@@ -2930,9 +2930,9 @@ OPENSSL_EXPORT void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
OPENSSL_EXPORT int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
X509 *x509, STACK_OF(X509) *chain);
// X509_verify_cert performs certifice verification with |ctx|, which must have
// been initialized with |X509_STORE_CTX_init|. It returns one on success and
// zero on error. On success, |X509_STORE_CTX_get0_chain| or
// X509_verify_cert performs certificate verification with |ctx|, which must
// have been initialized with |X509_STORE_CTX_init|. It returns one on success
// and zero on error. On success, |X509_STORE_CTX_get0_chain| or
// |X509_STORE_CTX_get1_chain| may be used to return the verified certificate
// chain. On error, |X509_STORE_CTX_get_error| may be used to return additional
// error information.
@@ -3045,7 +3045,7 @@ OPENSSL_EXPORT void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int err);
OPENSSL_EXPORT const char *X509_verify_cert_error_string(long err);
// X509_STORE_CTX_get_error_depth returns the depth at which the error returned
// by |X509_STORE_CTX_get_error| occured. This is zero-indexed integer into the
// by |X509_STORE_CTX_get_error| occurred. This is zero-indexed integer into the
// certificate chain. Zero indicates the target certificate, one its issuer, and
// so on.
OPENSSL_EXPORT int X509_STORE_CTX_get_error_depth(const X509_STORE_CTX *ctx);
@@ -4668,7 +4668,7 @@ OPENSSL_EXPORT STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(
// |X509_STORE| that matches |name|. |type| should be one of the |X509_LU_*|
// constants to indicate the type of object. If a match was found, it stores the
// result in |ret| and returns one. Otherwise, it returns zero. If multiple
// objects match, this function outputs an arbitray one.
// objects match, this function outputs an arbitrary one.
//
// WARNING: |ret| must be in the empty state, as returned by |X509_OBJECT_new|.
// Otherwise, the object currently in |ret| will be leaked when overwritten.
@@ -4949,7 +4949,7 @@ OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(const CONF *conf,
OPENSSL_EXPORT char *i2s_ASN1_OCTET_STRING(const X509V3_EXT_METHOD *method,
const ASN1_OCTET_STRING *oct);
// s2i_ASN1_OCTET_STRING decodes |str| as a hexdecimal byte string, with
// s2i_ASN1_OCTET_STRING decodes |str| as a hexadecimal byte string, with
// optional colon separators between bytes. It returns a newly-allocated
// |ASN1_OCTET_STRING| with the result on success, or NULL on error. |method|
// and |ctx| are ignored.
+1 -1
View File
@@ -121,7 +121,7 @@ class OPENSSL_EXPORT CertErrors {
CertError::Severity severity) const;
// Returns true if the error |id| was added to this CertErrors at
// high serverity.
// high severity.
bool ContainsError(CertErrorId id) const;
// Returns true if this contains any errors of the given severity level.
+1 -1
View File
@@ -95,7 +95,7 @@ OPENSSL_EXPORT bool ParseCertificatePoliciesExtension(
//
// If a policy qualifier other than User Notice/CPS is present, parsing
// will fail if |fail_parsing_unknown_qualifier_oids| was set to true,
// otherwise the unrecognized qualifiers wil be skipped and not parsed
// otherwise the unrecognized qualifiers will be skipped and not parsed
// any further.
//
// Returns true on success. On failure returns false and may add errors to
+2 -2
View File
@@ -104,8 +104,8 @@ OPENSSL_EXPORT extern const CertErrorId kEkuLacksClientAuth;
OPENSSL_EXPORT extern const CertErrorId kCertIsNotTrustAnchor;
// The chain is not valid for any policy, and an explicit policy was required.
// (Either because the relying party requested it during verificaiton, or it was
// requrested by a PolicyConstraints extension).
// (Either because the relying party requested it during verification, or it was
// requested by a PolicyConstraints extension).
OPENSSL_EXPORT extern const CertErrorId kNoValidPolicy;
// The certificate is trying to map to, or from, anyPolicy.
+2 -2
View File
@@ -309,7 +309,7 @@ bool ParseOCSPResponseData(der::Input raw_tlv, OCSPResponseData *out) {
return false;
}
// For compatibilty, we ignore the restriction from X.690 Section 11.5 that
// For compatibility, we ignore the restriction from X.690 Section 11.5 that
// DEFAULT values should be omitted for values equal to the default value.
// TODO: Add warning about non-strict parsing.
if (version_present) {
@@ -847,7 +847,7 @@ OCSPRevocationStatus GetRevocationStatusForCert(
}
// The SingleResponse matches the certificate, but may be out of date. Out
// of date responses are noted seperate from responses with mismatched
// of date responses are noted separate from responses with mismatched
// serial numbers. If an OCSP responder provides both an up to date
// response and an expired response, the up to date response takes
// precedence (PROVIDED > INVALID_DATE).
+1 -1
View File
@@ -251,7 +251,7 @@ struct OPENSSL_EXPORT ParsedTbsCertificate {
//
// Parsing guarantees that notBefore (validity_not_before) and notAfter
// (validity_not_after) are valid DER-encoded dates, however it DOES NOT
// gurantee anything about their values. For instance notAfter could be
// guarantee anything about their values. For instance notAfter could be
// before notBefore, or the dates could indicate an expired certificate.
// Consumers are responsible for testing expiration.
der::GeneralizedTime validity_not_before;
+2 -2
View File
@@ -92,7 +92,7 @@ enum KeyIdentifierMatch {
// Returns an integer that represents the relative ordering of |issuer| for
// prioritizing certificates in path building based on |issuer|'s
// subjectKeyIdentifier and |target|'s authorityKeyIdentifier. Lower return
// values indicate higer priority.
// values indicate higher priority.
KeyIdentifierMatch CalculateKeyIdentifierMatch(
const ParsedCertificate *target, const ParsedCertificate *issuer) {
if (!target->authority_key_identifier()) {
@@ -117,7 +117,7 @@ KeyIdentifierMatch CalculateKeyIdentifierMatch(
// Returns an integer that represents the relative ordering of |issuer| based
// on |issuer_trust| and authorityKeyIdentifier matching for prioritizing
// certificates in path building. Lower return values indicate higer priority.
// certificates in path building. Lower return values indicate higher priority.
int TrustAndKeyIdentifierMatchToOrder(const ParsedCertificate *target,
const ParsedCertificate *issuer,
const CertificateTrust &issuer_trust) {
+1 -1
View File
@@ -154,7 +154,7 @@ std::string CollapseWhitespaceASCII(std::string_view text,
--chars_written;
}
} else {
// Non-whitespace chracters are copied straight across.
// Non-whitespace characters are copied straight across.
in_whitespace = false;
already_trimmed = false;
result[chars_written++] = *i;
+1 -1
View File
@@ -145,7 +145,7 @@ der::Input SequenceValueFromString(std::string_view s) {
// mappings_copy is used to keep track of which mappings have already been
// satisfied (by nulling the |value| field). This is used to track when
// blocks are mulitply defined.
// blocks are multiply defined.
std::vector<PemBlockMapping> mappings_copy(mappings,
mappings + mappings_length);
+1 -1
View File
@@ -91,7 +91,7 @@ def GenerateCommentForBlock(block_name, block_data):
if p.returncode == 0:
stdout_data = stdout_data.strip()
# May contain embedded CERTIFICATE pem blocks. Escape these since
# CERTIFICATE already has meanining in the test file.
# CERTIFICATE already has meaning in the test file.
stdout_data = stdout_data.replace("-----", "~~~~~")
return '$ openssl ocsp -resp_text -respin <([%s])\n%s' % (block_name,
stdout_data)
@@ -16,7 +16,7 @@
"""
A chain with target using authorityKeyIdentifier:issuer and multiple
intermediates with different serial numbers and issuer names, for testing
path bulding prioritization.
path building prioritization.
"""
import sys
@@ -15,7 +15,7 @@
"""
A chain with multiple intermediates with different subjectKeyIdentifiers and
notBefore dates, for testing path bulding prioritization.
notBefore dates, for testing path building prioritization.
"""
import sys
@@ -15,7 +15,7 @@
"""
A chain with four possible intermediates with different notBefore and notAfter
dates, for testing path bulding prioritization.
dates, for testing path building prioritization.
"""
import sys
@@ -1,4 +1,4 @@
This test verifies behavior when a certificate has an unparseable/unsupported
This test verifies behavior when a certificate has an unparsable/unsupported
SPKI. It should be handled equivalently to a certificate with a failed
signature verification: further processing should be shortcircuited.
The certificate chain has 2 problems:
@@ -1,7 +1,7 @@
[Created by: generate-chains.py]
Certificate chain where the intermediate has a policies extension marked as
critical, and contains an unknown policy qualifer (1.2.3.4).
critical, and contains an unknown policy qualifier (1.2.3.4).
Certificate:
Data:
@@ -14,7 +14,7 @@
# limitations under the License.
"""Certificate chain where the intermediate has a policies extension marked as
critical, and contains an unknown policy qualifer (1.2.3.4)."""
critical, and contains an unknown policy qualifier (1.2.3.4)."""
import sys
sys.path += ['../..']
@@ -25,7 +25,7 @@ import gencerts
root = gencerts.create_self_signed_root_certificate('Root')
# Intermediate that has a critical policies extension containing an unknown
# policy qualifer.
# policy qualifier.
intermediate = gencerts.create_intermediate_certificate('Intermediate', root)
intermediate.get_extensions().add_property(
'2.5.29.32', ('critical,DER:30:13:30:11:06:02:2a:03:30:0b:30:09:06:03:'
@@ -1,7 +1,7 @@
[Created by: generate-chains.py]
Certificate chain where the intermediate has a policies extension (not
marked as critical) which contains an unknown policy qualifer (1.2.3.4).
marked as critical) which contains an unknown policy qualifier (1.2.3.4).
Certificate:
Data:
@@ -14,7 +14,7 @@
# limitations under the License.
"""Certificate chain where the intermediate has a policies extension (not
marked as critical) which contains an unknown policy qualifer (1.2.3.4)."""
marked as critical) which contains an unknown policy qualifier (1.2.3.4)."""
import sys
sys.path += ['../..']
@@ -25,7 +25,7 @@ import gencerts
root = gencerts.create_self_signed_root_certificate('Root')
# Intermediate that has a non-critical policies extension containing an unknown
# policy qualifer.
# policy qualifier.
intermediate = gencerts.create_intermediate_certificate('Intermediate', root)
intermediate.get_extensions().add_property(
'2.5.29.32', ('DER:30:13:30:11:06:02:2a:03:30:0b:30:09:06:03:'
+2 -2
View File
@@ -784,7 +784,7 @@ class PathVerifier {
const std::set<der::Input> &user_initial_policy_set,
bool allow_precertificate, CertErrors *errors);
// Enforces trust anchor constraints compatibile with RFC 5937.
// Enforces trust anchor constraints compatible with RFC 5937.
//
// Note that the anchor constraints are encoded via the attached certificate
// itself.
@@ -875,7 +875,7 @@ class PathVerifier {
// * working_public_key_parameters
//
// They are combined for simplicity since the signature verification takes an
// EVP_PKEY, and the parameter inheritence is not applicable for the supported
// EVP_PKEY, and the parameter inheritance is not applicable for the supported
// key types. |working_public_key_| may be null if parsing failed.
//
// An approximate explanation of |working_public_key_| is this description
+1 -1
View File
@@ -182,7 +182,7 @@ impl<C: EvpCipherType> Cipher<C> {
}
fn apply_keystream_in_place(&mut self, buffer: &mut [u8]) -> Result<(), CipherError> {
// WARNING: This is not safe to re-use for the CBC mode of operation since it is applying
// WARNING: This is not safe to reuse for the CBC mode of operation since it is applying
// the key stream in-place.
assert_eq!(
self.cipher_mode(),

Some files were not shown because too many files have changed in this diff Show More