DeCSS Source Song
Anonymous Coward writes: "http://www.joeysmith.com/~jwecker/ descramble.mp3
This guy put the function void css_descramble(byte *sec,byte *key) from css-descramble.c as lyrics in a song. Is this illegal?" Amusing. And not as painful to listen to as I thought it would be. Well, almost.
The judge in the Bernstein case was right, code is speech. If it's not, how else could you sing it?
btw: The site is either /.ed or down. Oh yeah, and you could piss off a lot of people at once if you used Napster to download the DeCSS source!
--
Wooden armaments to battle your imaginary foes!
I hope the DMCA listens to this. OR (light bulb!) we should put this on CD, setup shop outside any dmca headquarters that exist, and play this as loud as possible over and over again, on any stacks, pa's, etc we have.
Just so everyone knows, I am the SysAdmin ;)
/.'d.
:))
for joeysmith.com (yes, I am Joey Smith.
This is a 386 with 16MB of RAM, just a little
toy machine for me and my friend (jwecker) to
play with, so please be patient if it gets
And mirror it!
Would it be even more illegal if I played it really loud here at work (in Detroit) so that the people across the river in Canada were to hear it? Would that be exporting it?
- passion
Sometimes it's a little hard to hear what he's saying, but it's pretty easy to follow along....
void css_descramble(byte *sec,byte *key)
{
#define SALTED(i) (key[i] ^ sec[0x54 + (i)])
unsigned char *end = sec + 0x800;
int val;
unsigned int lfsr0, lfsr1;
byte o_lfsr0, o_lfsr1;
lfsr0 = ((SALTED(4) << 17) | (SALTED(3) << 9) | (SALTED(2) << 1)) + 8 - (SALTED(2)&7);
lfsr0 = (reverse[lfsr0&0xff]<<17) | (reverse[(lfsr0>>8)&0xff] << 9)
| (reverse[(lfsr0>>16)&0xff]<<1) |(lfsr0>>24);
lfsr1 = (reverse[SALTED(0)] << 9) | 0x100 | (reverse[SALTED(1)]);
sec+=0x80;
val = 0;
while (sec != end) {
o_lfsr0 = (lfsr0 >> 12) ^ (lfsr0 >> 4) ^ (lfsr0 >> 3) ^ lfsr0;
o_lfsr1 = ((lfsr1 >> 14) & 7) ^ lfsr1;
o_lfsr1 ^= (o_lfsr1 << 3) ^ (o_lfsr1 << 6);
lfsr1 = (lfsr1 >> 8) ^ (o_lfsr1 << 9);
lfsr0 = (lfsr0 >> 8) ^ (o_lfsr0 << 17);
val += o_lfsr0 + (byte)~o_lfsr1;
*sec++ = csstab1[*sec] ^ (val & 0xff);
val >>= 8;
}
}
-----
Joe is having some problems with his upstream provider, so with his permission I have mirrored copies of the song here and here.
This communication is secured using Rot-26 Encryption Algorithm, Unauthorized decryption will be subject to laughter.