libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption. The important features are:
libdvdcss is free software, released under the General Public License. This ensures that libdvdcss remains free and used only with free software.
The complete libdvdcss programming interface is documented in the dvdcss.h file.
Some environment variables can be used to change the behavior of libdvdcss without having to modify the program which uses it. These variables are:
0outputs no messages at all.
1outputs error messages to stderr.
2outputs error messages and debug messages to stderr.
keyis the default method. libdvdcss will use a set of calculated player keys to try and get the disc key. This can fail if the drive does not recognize any of the player keys.
discis a fallback method when
keyhas failed. Instead of using player keys, libdvdcss will crack the disc key using a brute force algorithm. This process is CPU intensive and requires 64 MB of memory to store temporary data.
titleis the fallback when all other methods have failed. It does not rely on a key exchange with the DVD drive, but rather uses a crypto attack to guess the title key. On rare cases this may fail because there is not enough encrypted data on the disc to perform a statistical attack, but in the other hand it is the only way to decrypt a DVD stored on a hard disc, or a DVD with the wrong region on an RPC2 drive.
raw(8)for instance. Please note that on most operating systems, using a raw device requires highly aligned buffers: Linux requires a 2048 bytes alignment (which is the size of a DVD sector).