pub struct KeyStore {
pub pids: Vec<String>,
pub serials: Vec<String>,
pub adept_keys: Vec<Vec<u8>>,
pub bandn_keys: Vec<String>,
pub ereader_keys: Vec<[u8; 8]>,
pub kobo_keys: Vec<[u8; 16]>,
pub kobo_db: Option<Vec<u8>>,
pub kobo_volumeid: Option<String>,
pub kindle_dbs: Vec<KindleDb>,
}Expand description
All candidate keys gathered for a decryption attempt. Schemes brute-force the relevant bucket against the book. Mirrors the plugin’s prefs buckets.
Fields§
§pids: Vec<String>Explicit Mobipocket/Topaz/KFX PIDs (8- or 10-char).
serials: Vec<String>Kindle device serial numbers (eInk / android-derived).
adept_keys: Vec<Vec<u8>>Adobe ADEPT user keys: DER-encoded RSA private keys.
bandn_keys: Vec<String>Barnes & Noble user keys (28-char base64 ccHash).
ereader_keys: Vec<[u8; 8]>eReader user keys (8-byte DES keys, hex in the plugin prefs).
kobo_keys: Vec<[u8; 16]>Kobo candidate user keys (16-byte AES keys).
kobo_db: Option<Vec<u8>>Raw bytes of the Kobo library SQLite DB (KoboReader.sqlite /
Kobo.sqlite). Unlike other schemes, the Kobo per-file wrapped page keys
live outside the book, in this DB (§9.3); the scheme reads them from here.
kobo_volumeid: Option<String>Which Kobo volume (book) the input corresponds to. When None and the DB
holds exactly one volume, that volume is used.
kindle_dbs: Vec<KindleDb>Decoded Kindle key databases (from .k4i / .kinf). Unlike bare
serials, a full DB carries the account DSN + token, so the Kindle schemes
derive extra candidate PIDs from it via pid::k4_pids (§6.2).