Leone25 / zanichelli-downloader

A tool to download your books from zanichelli into PDFs
MIT License
66 stars 4 forks source link

Encrypted message length is invalid #47

Open giovariot opened 1 month ago

giovariot commented 1 month ago

Provando ad utilizzare il programma su macOS vado incontro a queso errore

Detecting reader...
Kitaboo book detected
Exchangin usertoken...
Fetching book details...
Obtaining encryption encryption key...
Fetching encrypted encryption key...
Processing...
Decrypting encryption key...
/Users/giova/Downloads/zanichelli-downloader-main/node_modules/node-forge/lib/rsa.js:578
    var error = new Error('Encrypted message length is invalid.');
                ^

Error: Encrypted message length is invalid.
    at pki.rsa.decrypt (/Users/giova/Downloads/zanichelli-downloader-main/node_modules/node-forge/lib/rsa.js:578:17)
    at key.decrypt (/Users/giova/Downloads/zanichelli-downloader-main/node_modules/node-forge/lib/rsa.js:1274:21)
    at downloadKitabooBook (file:///Users/giova/Downloads/zanichelli-downloader-main/index.js:116:26)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async file:///Users/giova/Downloads/zanichelli-downloader-main/index.js:466:3 {
  length: 9,
  expected: 128
}

Node.js v22.9.0
Leone25 commented 1 month ago

hm, ho riprovato lo script e a me funziona, quindi devo dedurre che sia un problema su un particolare libro. Hai più info?

giovariot commented 1 month ago

Ho riprovato anche oggi: stesso errore. Sia su node.js 22.10 che su 23.0

Il libro è questo:

┌───────────────┬─────────────────────────────────────────┐
│ (index)       │ title                                   │
├───────────────┼─────────────────────────────────────────┤
│ 9788808820372 │ 'Harrison Principi di Medicina interna' │
└───────────────┴─────────────────────────────────────────┘

Mi chiedo se possa essere un problema di tipo di criptazione (ho trovato quest'unico risultato facendo una ricerca su duckduckgo: https://stackoverflow.com/questions/70568505/error-encrypted-message-length-is-invalid-websocket-messes-up-rsa-encrypted). Me lo chiedo dal momento che nel codice di errore viene riportata una lunghezza della chiave inviata alla funzione key.decrypt(forge.util.decode64(encryptedEncryptionKey)) di 9 rispetto alla lunghezza attesa di 128.

  length: 9,
  expected: 128

Va considerato che il libro è probabilmente in formato EPUB perché l'indexedDB sembra proprio un epub