[package]
name = "iwcore"
version = "0.2.3"
edition = "2024"
rust-version = "1.90"
license = "MIT"
repository = "https://github.com/intellisoftalpin/iwcore"
homepage = "https://intelliwallet.io"
documentation = "https://docs.rs/iwcore"
authors = ["IntelliSoftAlpin"]
description = "IntelliWallet Core - Password manager library with authenticated encryption"
keywords = ["password-manager", "encryption", "argon2", "security", "vault"]
categories = ["cryptography", "database"]
readme = "README.md"
exclude = ["docs"]

[dependencies]
# Database
rusqlite = { version = "0.40", features = ["bundled"] }

# Crypto - current scheme (XChaCha20-Poly1305 + Argon2id)
chacha20poly1305 = "0.11.0"
argon2 = "0.6.0-rc.8"
zeroize = "1.8"

# Crypto - legacy scheme (read-only, used by the v5->v6 migration path)
aes = "0.9.1"
cbc = "0.2.1"
md-5 = "0.11.0"
block-padding = "0.4.2"

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# Utilities
chrono = { version = "0.4", features = ["serde"] }
thiserror = "2.0"
zip = "8.6"
genpdf = "0.2"
uuid = { version = "1.23", features = ["v4"] }
rand = "0.10"
tempfile = "3.27"

[dev-dependencies]

[features]
default = []
