14ebb4ff27
If y is zero, there is no point with odd y, so the odd bit may not be set, hence EC_R_INVALID_COMPRESSION_BIT. This code instead computed the Kronecker symbol of x and changed the error code to EC_R_INVALID_COMPRESSED_POINT if not a square. As the comment says, this was (intended to be) unreachable. But it seems x was a typo for tmp1. It dates to before upstream's 6fb60a84dd1ec81953917e0444dab50186617432, when BN_mod_sqrt gave garbage if its input was not square. Now it emits BN_R_NOT_A_SQUARE. Upstream's 48fe4d6233ac2d60745742a27f820dd88bc6689d then mapped BN_R_NOT_A_SQUARE to EC_R_INVALID_COMPRESSED_POINT. Change-Id: Id9e02fa1c154b61cc0c3a768c9cfe6bd9674c378 Reviewed-on: https://boringssl-review.googlesource.com/12463 Reviewed-by: Adam Langley <agl@google.com> |
||
---|---|---|
.. | ||
asm | ||
CMakeLists.txt | ||
ec_asn1.c | ||
ec_key.c | ||
ec_montgomery.c | ||
ec_test.cc | ||
ec.c | ||
example_mul.c | ||
internal.h | ||
oct.c | ||
p224-64.c | ||
p256-64.c | ||
p256-x86_64_test.cc | ||
p256-x86_64_tests.txt | ||
p256-x86_64-table.h | ||
p256-x86_64.c | ||
p256-x86_64.h | ||
simple.c | ||
util-64.c | ||
wnaf.c |