Expand description
Keeper “direct” importer cryptography.
This is a byte-for-byte port of the Keeper access layer’s crypto.ts. It implements
Keeper’s wire formats, not Bitwarden’s, so it deliberately does not live in
bitwarden-crypto: the formats are unauthenticated AES-CBC (“aes-v1”), AES-GCM with a prepended
nonce (“aes-v2”), RSA PKCS#1 v1.5 (unsupported), an ECDH-P256 → SHA-256 → AES-GCM scheme, and
Keeper’s custom encryptionParams blob. Where a primitive is standard we reuse
bitwarden_crypto (pbkdf2) and otherwise use the RustCrypto crates directly.
Every function here must stay compatible with data produced by Keeper’s clients; do not change the formats.