Add hardened path

Changed files
+13 -5
src
+13 -5
src/main.rs
···
sdk::bootstrap!();
+
const HARDENED_PATH: u32 = '🦋' as u32 | (1 << 31);
+
#[cfg(not(test))]
fn display_key(pubkey: &[u8], index: u32) -> bool {
use alloc::string::ToString;
···
sdk::ux::review_pairs(
"Verify Atproto DID key",
"",
-
&[TagValue {
-
tag: "Index".into(),
-
value: index.to_string(),
-
}],
+
&[
+
TagValue {
+
tag: "Key index".into(),
+
value: index.to_string(),
+
},
+
TagValue {
+
tag: "Path".into(),
+
value: alloc::format!("m/{}'/{}", '🦋' as u32, index),
+
},
+
],
&did_key,
"Confirm",
false,
···
return Err("Derivation path is too long");
}
-
let hd_node = sdk::curve::Secp256k1::derive_hd_node(&[index])?;
+
let hd_node = sdk::curve::Secp256k1::derive_hd_node(&[HARDENED_PATH, index])?;
let privkey: EcfpPrivateKey<Secp256k1, 32> = EcfpPrivateKey::new(*hd_node.privkey);
let pubkey = privkey.to_public_key();
let uncompressed_pubkey = pubkey.as_ref().to_bytes();