v0.2.5-pre.004

This commit is contained in:
2026-08-19 11:29:05 +02:00
parent d5536b0778
commit 6c1172efc3
17 changed files with 859 additions and 27 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-wallet-lib/src/wire.rs
// version: 1
// version: 3
//! Strict native `.kspwallet` V1 wire envelope.
@@ -893,6 +893,12 @@ fn parse_kdf(raw: RawKdfV1) -> ksp_core_lib::Result<WalletKdfParametersV1> {
if raw.parallelism == 0 || raw.parallelism > crate::KSPWALLET_V1_MAX_ARGON2_PARALLELISM {
return std::result::Result::Err(crypto_parameter_error("Wallet Argon2 parallelism is outside the V1 structural range", "key_slots.kdf.parallelism"));
}
if raw.memory_kib < raw.parallelism * 8 {
return std::result::Result::Err(crypto_parameter_error(
"Wallet Argon2 memory_kib must provide at least eight 1-KiB blocks per lane",
"key_slots.kdf.memory_kib",
));
}
let salt = match decode_base64url(raw.salt.as_str(), "key_slots.kdf.salt") {
std::result::Result::Ok(salt) => salt,
std::result::Result::Err(error) => return std::result::Result::Err(error),