v0.2.6-pre.016
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
// file: crates/ksp-wallet-lib/src/crypto.rs
|
||||
// version: 4
|
||||
// version: 5
|
||||
|
||||
//! In-memory cryptographic primitives for native `.kspwallet` V1.
|
||||
//! In-memory cryptographic primitives shared by native `.kspwallet` V1/V2 runtime.
|
||||
|
||||
use chacha20poly1305::KeyInit; // rust-rules: trait-import
|
||||
use chacha20poly1305::aead::Aead; // rust-rules: trait-import
|
||||
|
||||
/// Exact V1 content-key and password-derived-key size in bytes.
|
||||
/// Exact content-key and password-derived-key size in bytes for the current V1/V2 profiles.
|
||||
pub(crate) const SECRET_KEY_BYTES: usize = 32;
|
||||
|
||||
/// Owned 32-byte secret key with redacted diagnostics and drop-time zeroization.
|
||||
@@ -68,6 +68,11 @@ pub(crate) fn derive_password_key(password: &[u8], kdf: &crate::WalletKdfParamet
|
||||
return derive_argon2id(password, kdf.salt(), kdf.memory_kib(), kdf.iterations(), kdf.parallelism());
|
||||
}
|
||||
|
||||
/// Derives one V2 password wrapping key from serialized Argon2id parameters.
|
||||
pub(crate) fn derive_password_key_v2(password: &[u8], kdf: &crate::WalletKdfParametersV2) -> ksp_core_lib::Result<crate::SecretKeyV1> {
|
||||
return derive_argon2id(password, kdf.salt(), kdf.memory_kib(), kdf.iterations(), kdf.parallelism());
|
||||
}
|
||||
|
||||
/// Wraps one 32-byte content key with XChaCha20-Poly1305 and caller-provided domain-separated AAD.
|
||||
pub(crate) fn wrap_key(
|
||||
wrapping_key: &crate::SecretKeyV1,
|
||||
|
||||
Reference in New Issue
Block a user