Skip to content

Commit

Permalink
feat: added support for 64 bytes pvk (#97)
Browse files Browse the repository at this point in the history
  • Loading branch information
pedrxlz authored Feb 6, 2025
1 parent a9c89eb commit 53b2f66
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 1 deletion.
30 changes: 30 additions & 0 deletions packages/kos/src/chains/klv/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,36 @@ mod test {
);
}

#[test]
fn test_pvk_32() {
let pvk = hex::decode("8734062c1158f26a3ca8a4a0da87b527a7c168653f7f4c77045e5cf571497d9d")
.unwrap();

let pbk = crate::chains::klv::KLV {}.get_pbk(pvk).unwrap();

let address = crate::chains::klv::KLV {}.get_address(pbk.clone()).unwrap();
assert_eq!(
address,
"klv1usdnywjhrlv4tcyu6stxpl6yvhplg35nepljlt4y5r7yppe8er4qujlazy"
);
assert_eq!(pbk.len(), 32);
}

#[test]
fn test_pvk_64() {
let pvk = hex::decode("8734062c1158f26a3ca8a4a0da87b527a7c168653f7f4c77045e5cf571497d9de41b323a571fd955e09cd41660ff4465c3f44693c87f2faea4a0fc408727c8ea")
.unwrap();

let pbk = crate::chains::klv::KLV {}.get_pbk(pvk).unwrap();

let address = crate::chains::klv::KLV {}.get_address(pbk.clone()).unwrap();
assert_eq!(
address,
"klv1usdnywjhrlv4tcyu6stxpl6yvhplg35nepljlt4y5r7yppe8er4qujlazy"
);
assert_eq!(pbk.len(), 32);
}

#[test]
fn test_sign_raw() {
let mnemonic =
Expand Down
5 changes: 4 additions & 1 deletion packages/kos/src/chains/util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,8 @@ pub fn slice_from_vec<const N: usize>(vec: &[u8]) -> Result<[u8; N], ChainError>
}

pub fn private_key_from_vec<const N: usize>(vec: &[u8]) -> Result<[u8; N], ChainError> {
slice_from_vec::<N>(vec).map_err(|_| ChainError::InvalidPrivateKey)
// If input is longer than N, take first N bytes
let slice = if vec.len() > N { &vec[..N] } else { vec };

slice_from_vec::<N>(slice).map_err(|_| ChainError::InvalidPrivateKey)
}

0 comments on commit 53b2f66

Please sign in to comment.