mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2026-11-05 12:22:06 +00:00
- Zod schemas for all 9 entry kinds (schema_version 4): validate and roundtrip the Python EntryManager-generated fixture unchanged; refuse future schema versions. - Password KDF parity: PBKDF2-SHA256 (NFKD+strip, fingerprint salt, 50k/100k iters) and Argon2id via @noble/hashes, both fixture-verified. - Legacy vault decrypt chain matching EncryptionManager.decrypt_data: V3 GCM -> V2 GCM -> V2-header-over-Fernet -> raw Fernet (decrypt-only), plus the JSON kdf/ct file wrapper with bare-ciphertext fallback; the parent-seed file decrypts end-to-end from password. - Fixture generator grows password_kdf.json and legacy_payloads.json (pinned IVs/nonces, fixture-only). - 100 parity tests green in Node and jsdom. Co-Authored-By: Claude Fable 5 <[email protected]>
73 lines
2.2 KiB
JSON
73 lines
2.2 KiB
JSON
{
|
|
"argon2id_cases": [
|
|
{
|
|
"kdf": {
|
|
"name": "argon2id",
|
|
"params": {
|
|
"memory_cost": 65536,
|
|
"parallelism": 8,
|
|
"time_cost": 2
|
|
},
|
|
"salt_b64": "Zml4dHVyZS1zYWx0LTE2Yg==",
|
|
"version": 1
|
|
},
|
|
"key_urlsafe_b64": "kOetayBVH0lqgiKEZoduzgp1wSN6Sr0uYO1c8qY84jY=",
|
|
"password": "fixture-password"
|
|
},
|
|
{
|
|
"kdf": {
|
|
"name": "argon2id",
|
|
"params": {
|
|
"memory_cost": 8192,
|
|
"parallelism": 1,
|
|
"time_cost": 1
|
|
},
|
|
"salt_b64": "Zml4dHVyZS1zYWx0LTE2Yg==",
|
|
"version": 1
|
|
},
|
|
"key_urlsafe_b64": "PkbCivI-Zyl-WamZ8hsHb9xTDeEMJrbiMMMcze9Zrnk=",
|
|
"password": "fixture-password"
|
|
}
|
|
],
|
|
"description": "Password-based key derivation. PBKDF2: NFKD-normalized+stripped password, salt = SHA256(fingerprint)[:16], PBKDF2-HMAC-SHA256, 32 bytes, urlsafe b64. Argon2id: NFKD+strip, salt from config, hash_len 32, urlsafe b64. Salts pinned for fixtures only.",
|
|
"fixture_version": 1,
|
|
"pbkdf2_cases": [
|
|
{
|
|
"fingerprint": "C557EEC878DFD852",
|
|
"iterations": 50000,
|
|
"key_urlsafe_b64": "ZBUI9O_vfhYEE-Hhq6csLpihWzregbuLnXbifaLE3lg=",
|
|
"password": "fixture-password"
|
|
},
|
|
{
|
|
"fingerprint": "C557EEC878DFD852",
|
|
"iterations": 100000,
|
|
"key_urlsafe_b64": "jruA49jkHzZAnNR7uqIznJjySs9CzS2C8drQWkcyuY8=",
|
|
"password": "fixture-password"
|
|
},
|
|
{
|
|
"fingerprint": "C557EEC878DFD852",
|
|
"iterations": 50000,
|
|
"key_urlsafe_b64": "mWJNQU1UYvjHY1dpjnXutzoRIj_IUZsGG8kwCQp0Qsg=",
|
|
"password": "correct horse battery staple"
|
|
},
|
|
{
|
|
"fingerprint": "C557EEC878DFD852",
|
|
"iterations": 100000,
|
|
"key_urlsafe_b64": "2KcQMPdKRgUZNRUG1A8PetAh5BfjmL-OYBLZU8ziIpo=",
|
|
"password": "correct horse battery staple"
|
|
},
|
|
{
|
|
"fingerprint": "C557EEC878DFD852",
|
|
"iterations": 50000,
|
|
"key_urlsafe_b64": "zKjk8qcTuGEQ9kHNVtL05ANedDKx6IcJBlL-ejMY8Xg=",
|
|
"password": " p\u00e4ssw\u00f6rd "
|
|
},
|
|
{
|
|
"fingerprint": "C557EEC878DFD852",
|
|
"iterations": 100000,
|
|
"key_urlsafe_b64": "QQ9Dcp9T5VkrSyU1ITgFF-FnRU6r0GZST4FdKxrh6xk=",
|
|
"password": " p\u00e4ssw\u00f6rd "
|
|
}
|
|
]
|
|
}
|