feat: import KeePassXC CSV exports - #38
Conversation
|
Upstream main added mandatory per-commit DCO enforcement in 979f1cc after this PR's commit was created. The existing commit 38166d4 has no Signed-off-by trailer, and I am not providing a DCO certification or authorizing one on my behalf. Please do not treat this comment as a DCO attestation. A normal Update branch or merge commit will not satisfy the configured action because it still checks the original unsigned non-merge commit. If the project wants to accept the patch without contributor DCO, please use an explicit maintainer-driven path: either recreate/apply the patch in a new maintainer-owned commit and sign it in the maintainer's own capacity after independently confirming provenance and licensing, or adopt an explicit grandfather/exemption policy through the project's governance process. PR #38 should remain open until such a replacement path is confirmed. |
63f15de to
aa4fde6
Compare
38166d4 to
ab42932
Compare
|
Rebuilt this branch on the current Fresh validation on the rebased head with the repository-pinned Rust 1.96 toolchain:
This rewrite does not add a |
What does this change?
Adds
blindkey import --format keepass-csvwithkeepassxc-csvas the accepted-spec alias.Closes #30.
Affected constraints
Checklist
-D warnings, and full workspace tests passcargo audit,cargo deny check, andcargo vetpassDebug, default stdout, or argvunsafeor custom crypto addedSecurity impact
This adds a hostile-input parser at the migration boundary. It uses
csv-corefor quoting/unescaping with a fixed zeroizing field buffer, rejects oversized inputs before vault unlock, validates the complete import before mutation, masks review output, and commits through the existing backup + single-save path.csv-coreis version-pinned inCargo.lockand the repository's cargo-vet exemptions.Validation
cargo fmt --all -- --checkcargo clippy --all-targets --all-features -- -D warningscargo test --all-features --workspacecargo test -p blindkey-cli --test cli keepassxc_csv_round_trips_into_vault_after_masked_review -- --nocapturecargo check --manifest-path fuzz/Cargo.toml --bin keepassxc_csvcargo auditcargo deny checkcargo vet