acss, acss_setkey - ACSS encryption
void acss_setkey(ACSS_KEY *key, const unsigned char *data, int enc,
void acss(ACSS_KEY *key, unsigned long len, const unsigned char *in,
unsigned char *out);
This library implements the Alleged Content Scrambling
System. It is believed to be interoperable with CSS of
the DVD Copy Control Association.
ACSS is a stream cipher with a fixed key length of 40 bit
ACSS consists of a key setup phase and the actual encryption
or decryption phase.
acss_setkey() sets up the ACSS_KEY key using the 40 bit
key at data. If the flag enc is set to 1 key will be used
for encryption, otherwise for decryption. The integer
mode denotes the mode to use. Acceptible values are 0 to
3. For any other value mode 0 is used.
acss() encrypts or decrypts the len bytes of in using key
and places the result at out.
Applications should use the higher level functions
EVP_EncryptInit(3) etc. instead of calling the acss functions
None of the functions presented here return any value.
ACSS is considered as an insecure cipher. Therefore, use
of ACSS is discouraged.
A proprietary algorithm called CSS can be licensed from
the DVD Copy Control Association (DVD CCA). CSS is considered
a trade secret and is not patented. In October
1999 source code for CSS was posted anonymously to the
LiViD mailing list. Since then, several implementations
and mathematical descriptions of CSS are available and CSS
has been subject to cryptanalysis. The DVD CCA has
repeatedly failed to sue individuals for publishing such
information about CSS.
ACSS is a stream cipher written from scratch and believed
to be interoperable with CSS.
OpenBSD 3.6 2004-01-23 2 [ Back ]