Skip to content

Commit

Permalink
Use new feature to gate test vectors behind
Browse files Browse the repository at this point in the history
To match the local signatures found in test vectors, we must make sure
we don't use any additional randomess when generating signatures, as
we'll arrive at a different signature otherwise.
  • Loading branch information
wpaulino committed Apr 19, 2023
1 parent 21be311 commit b8d85c9
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 3 deletions.
2 changes: 1 addition & 1 deletion ci/ci-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ for DIR in lightning lightning-invoice lightning-rapid-gossip-sync; do
cargo test --verbose --color always --features no-std
# check that things still pass without grind_signatures
# note that outbound_commitment_test only runs in this mode, because of hardcoded signature values
cargo test --verbose --color always --no-default-features --features std
cargo test --verbose --color always --no-default-features --features=std,_test_vectors
# check if there is a conflict between no-std and the c_bindings cfg
RUSTFLAGS="--cfg=c_bindings" cargo test --verbose --color always --no-default-features --features=no-std
popd
Expand Down
2 changes: 2 additions & 0 deletions lightning/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ max_level_trace = []
# This is unsafe to use in production because it may result in the counterparty publishing taking our funds.
unsafe_revoked_tx_signing = []
_bench_unstable = []
# Override signing to not include randomness when generating signatures for test vectors.
_test_vectors = []

no-std = ["hashbrown", "bitcoin/no-std", "core2/alloc"]
std = ["bitcoin/std"]
Expand Down
2 changes: 1 addition & 1 deletion lightning/src/ln/channel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7516,7 +7516,7 @@ mod tests {
}
}

#[cfg(not(feature = "grind_signatures"))]
#[cfg(feature = "_test_vectors")]
#[test]
fn outbound_commitment_test() {
use bitcoin::util::sighash;
Expand Down
4 changes: 3 additions & 1 deletion lightning/src/util/crypto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@ pub fn sign_with_aux_rand<C: Signing, ES: Deref>(
break sig;
}
};
#[cfg(not(feature = "grind_signatures"))]
#[cfg(all(not(feature = "grind_signatures"), not(feature = "_test_vectors")))]
let sig = ctx.sign_ecdsa_with_noncedata(msg, sk, &entropy_source.get_secure_random_bytes());
#[cfg(all(not(feature = "grind_signatures"), feature = "_test_vectors"))]
let sig = sign(ctx, msg, sk);
sig
}

0 comments on commit b8d85c9

Please sign in to comment.