Reported by jonatack in https://github.com/bitcoin/bitcoin/issues/28079.
When configured with --disable-module-ecdh --enable-module-recovery
, then ./tests 64 81af32fd7ab8c9cbc2e62a689f642106
fails with
0src/modules/ellswift/tests_impl.h:396: test condition failed: secp256k1_memcmp_var(share32_bad, share32a, 32) != 0
This tests verifies that changing the party
bit of the secp256k1_ellswift_xdh
function results in a different share. However, that’s not the case when the secret keys of both parties are the same and this is actually what happens in the observed test failure. The keys can be equal in this test case because they are created by the random_scalar_order_test
function whose output is not uniformly random (it’s biased towards 0).
This commit restores the assumption that the secret keys differ.