Skip to content

Commit b65a6ae

Browse files
committed
Test for extended private key keypair generation f5875a
1 parent e6a3d60 commit b65a6ae

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/util/bip32.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,5 +1131,42 @@ mod tests {
11311131
assert_eq!("42", &format!("{}", ChildNumber::from_normal_idx(42).unwrap()));
11321132
assert_eq!("000042", &format!("{:06}", ChildNumber::from_normal_idx(42).unwrap()));
11331133
}
1134+
1135+
#[test]
1136+
#[should_panic(expected = "Secp256k1(InvalidSecretKey)")]
1137+
fn schnorr_broken_privkey_zeros() {
1138+
/* this is how we generate key:
1139+
let mut sk = secp256k1::key::ONE_KEY;
1140+
1141+
let zeros = [0u8; 32];
1142+
unsafe {
1143+
sk.as_mut_ptr().copy_from(zeros.as_ptr(), 32);
1144+
}
1145+
1146+
let xpriv = ExtendedPrivKey {
1147+
network: Network::Bitcoin,
1148+
depth: 0,
1149+
parent_fingerprint: Default::default(),
1150+
child_number: ChildNumber::Normal { index: 0 },
1151+
private_key: sk,
1152+
chain_code: ChainCode::from(&[0u8; 32][..])
1153+
};
1154+
1155+
println!("{}", xpriv);
1156+
*/
1157+
1158+
// Xpriv having secret key set to all zeros
1159+
let xpriv_str = "xprv9s21ZrQH143K24Mfq5zL5MhWK9hUhhGbd45hLXo2Pq2oqzMMo63oStZzF93Y5wvzdUayhgkkFoicQZcP3y52uPPxFnfoLZB21Teqt1VvEHx";
1160+
ExtendedPrivKey::from_str(xpriv_str).unwrap();
1161+
}
1162+
1163+
1164+
#[test]
1165+
#[should_panic(expected = "Secp256k1(InvalidSecretKey)")]
1166+
fn schnorr_broken_privkey_ffs() {
1167+
// Xpriv having secret key set to all 0xFF's
1168+
let xpriv_str = "xprv9s21ZrQH143K24Mfq5zL5MhWK9hUhhGbd45hLXo2Pq2oqzMMo63oStZzFAzHGBP2UuGCqWLTAPLcMtD9y5gkZ6Eq3Rjuahrv17fENZ3QzxW";
1169+
ExtendedPrivKey::from_str(xpriv_str).unwrap();
1170+
}
11341171
}
11351172

0 commit comments

Comments
 (0)