v0.5.2-pre.003

This commit is contained in:
2026-08-10 16:23:18 +02:00
parent eaa24e6f11
commit ef630e3123
14 changed files with 1153 additions and 128 deletions

View File

@@ -1,5 +1,5 @@
// file: ks-wallet/src/lib.rs
// version: 4
// version: 6
//! Wallet boundary for local key storage and transaction signing.
#![warn(missing_docs)]
@@ -8,6 +8,7 @@
mod constants;
mod manager;
mod native;
mod wallet;
/// Native wallet file extension without the leading dot.
@@ -31,13 +32,49 @@ pub use self::wallet::WalletPolicy;
/// Backward-compatible name for a non-secret wallet identity.
pub use self::wallet::WalletSummary;
/// Native wallet format version used by the identification prefix.
/// Version-one AEAD identifier for XChaCha20-Poly1305.
pub(crate) use self::constants::KSWALLET_AEAD_XCHACHA20_POLY1305;
/// Maximum accepted Argon2id pass count.
pub(crate) use self::constants::KSWALLET_ARGON2_MAX_ITERATIONS;
/// Maximum accepted Argon2id memory cost in KiB.
pub(crate) use self::constants::KSWALLET_ARGON2_MAX_MEMORY_KIB;
/// Maximum accepted Argon2id lane count.
pub(crate) use self::constants::KSWALLET_ARGON2_MAX_PARALLELISM;
/// Minimum accepted Argon2id pass count.
pub(crate) use self::constants::KSWALLET_ARGON2_MIN_ITERATIONS;
/// Minimum accepted Argon2id memory cost in KiB.
pub(crate) use self::constants::KSWALLET_ARGON2_MIN_MEMORY_KIB;
/// Minimum accepted Argon2id lane count.
pub(crate) use self::constants::KSWALLET_ARGON2_MIN_PARALLELISM;
/// Argon2 version identifier required by native format version one.
pub(crate) use self::constants::KSWALLET_ARGON2_VERSION;
/// Exact ciphertext length for a version-one protected keypair.
pub(crate) use self::constants::KSWALLET_CIPHERTEXT_LENGTH;
/// Fixed version-one header length before variable alias bytes.
pub(crate) use self::constants::KSWALLET_FIXED_HEADER_LENGTH;
/// Version-one flag value when no optional feature is enabled.
pub(crate) use self::constants::KSWALLET_FLAGS_NONE;
/// Native wallet format version.
pub(crate) use self::constants::KSWALLET_FORMAT_VERSION;
/// Number of bytes required to identify a native wallet file.
pub(crate) use self::constants::KSWALLET_IDENTIFICATION_LENGTH;
/// Version-one KDF identifier for Argon2id.
pub(crate) use self::constants::KSWALLET_KDF_ARGON2ID;
/// Native wallet format identification magic.
pub(crate) use self::constants::KSWALLET_MAGIC;
/// Maximum wallet alias length encoded by version one.
pub(crate) use self::constants::KSWALLET_MAX_ALIAS_LENGTH;
/// Maximum complete native wallet file length.
pub(crate) use self::constants::KSWALLET_MAX_FILE_LENGTH;
/// Minimum complete native wallet file length.
pub(crate) use self::constants::KSWALLET_MIN_FILE_LENGTH;
/// Nonce length used by XChaCha20-Poly1305.
pub(crate) use self::constants::KSWALLET_NONCE_LENGTH;
/// Salt length used by the version-one Argon2id profile.
pub(crate) use self::constants::KSWALLET_SALT_LENGTH;
/// Number of bytes stored by the standard Solana keypair JSON format.
pub(crate) use self::constants::SOLANA_KEYPAIR_LENGTH;
/// Canonical tracing target for this crate.
pub(crate) use self::constants::TRACING_TARGET;
/// Parsed version-one native wallet container.
pub(crate) use self::native::NativeWalletContainer;
/// Reads and strictly decodes one native wallet file.
pub(crate) use self::native::read_native_wallet_container;