Nichlas Severinsen 8661a20622 Add section on packagin and dependencies to specification 7 months ago
..
.gitignore 93de11b4b1 Towards LibRay 1.0.0: writing spec 9 months ago
README.md 8661a20622 Add section on packagin and dependencies to specification 7 months ago
flow.d2 93de11b4b1 Towards LibRay 1.0.0: writing spec 9 months ago
flow.png 93de11b4b1 Towards LibRay 1.0.0: writing spec 9 months ago
tables.d2 93de11b4b1 Towards LibRay 1.0.0: writing spec 9 months ago
tables.png 93de11b4b1 Towards LibRay 1.0.0: writing spec 9 months ago

README.md

LibRay 1.0.0 Specification

Note This specification has not been implemented yet.

Note Work in progress.

User interaction

Here is a flow diagram to explain the different ways a user can interact with LibRay:

LiBray flow

As you can see there are three main routes:

  1. The user has a key (in hex)
  2. The user has an .ird
  3. The user has nothing

It is assumed that no. 3 is the most common way to use LibRay, simply give it your .iso file and let LibRay decrypt it.

Database

LiBray bundles a database containing two tables:

  • ird: containing parsed data from various .ird dumps
  • redump: containing parsed data from redump

LibRay DB tables

Dependencies

  • crypto: pycryptodomex
  • progressbar: tqdm
  • http/https: requests
  • html: beautifulsoup4

In previous versions there were problems where dependencies interfered with eachother (notably, crypto vs pycrypto vs pycryptodome), so 1.0.0 and above uses pycryptodomex which is standalone from the previously mentioned packages.

Packaging