RecoveredKey in attack/mod.rs:33-38 includes a pubkey field:
pub struct RecoveredKey {
pub private_key: Scalar,
pub private_key_decimal: String,
pub private_key_hex: String,
pub pubkey: Option<String>, // ← present in domain type
}
But the serializable RecoveredKeyOutput in main.rs:188-192 drops it:
struct RecoveredKeyOutput {
private_key_decimal: String,
private_key_hex: String,
// pubkey missing
}
When analyzing a dataset with signatures from multiple public keys, the JSON output shows recovered private keys but doesn't say which pubkey each one belongs to. The pubkey field IS present at the vulnerability level, but not on the recovered key itself — so if you're programmatically consuming the output, you have to correlate vulnerability-level pubkey with recovered key yourself.
Adding pubkey: Option<String> to RecoveredKeyOutput (and populating it from key.pubkey) would make the JSON output self-contained. The human-readable output already shows the pubkey at the vulnerability level, so this mainly matters for --json consumers.
RecoveredKeyinattack/mod.rs:33-38includes apubkeyfield:But the serializable
RecoveredKeyOutputinmain.rs:188-192drops it:When analyzing a dataset with signatures from multiple public keys, the JSON output shows recovered private keys but doesn't say which pubkey each one belongs to. The
pubkeyfield IS present at the vulnerability level, but not on the recovered key itself — so if you're programmatically consuming the output, you have to correlate vulnerability-level pubkey with recovered key yourself.Adding
pubkey: Option<String>toRecoveredKeyOutput(and populating it fromkey.pubkey) would make the JSON output self-contained. The human-readable output already shows the pubkey at the vulnerability level, so this mainly matters for--jsonconsumers.