Napster Court Date Set For October 2
DaHat writes: "According to Maximumpc.com the trial of Napster vs the RIAA is set for October 2nd, or at least round 1 of it." And just so we're clear on terms, DaHat points out that the MPC story goes on: "The RIAA has even been so kind as to educate the masses on the different terms used for illegal distribution - From the RIAA Web-site:
1. Pirate recordings are the unauthorized duplication of only the sound of legitimate recordings, as opposed to all the packaging, i.e. the original art, label, title, sequencing, combination of titles etc.
2. Counterfeit recordings are unauthorized recordings of the prerecorded sound as well as the unauthorized duplication of original artwork, label, trademark and packaging.
3. Bootleg recordings (or underground recordings) are the unauthorized recordings of a live concert, or a musical broadcast on radio or television.
4. Online piracy is the unauthorized uploading of a copyrighted sound recording and making it available to the public, or downloading a sound recording from an Internet site, even if the recording isn't resold. Online piracy may now also include certain uses of 'streaming' technologies from the Internet."
Lets have a "work boycott" of the RIAA and the MPAA.
No geeks take any jobs with any member company of either group.
If they want to be so hostile to us (sueing Napster, Mp3.com, 2600, etc) then lets not work for them.
Let's see how well they do as companies when thier tech level stays mid 1990's.
Hmmm.... Sounds kinda like Animal Farm. Keep changing the terms, then state that they were always that way.
What a crock of shit. I hope Napster and the RIAA both burn in hell. Piracy indeed. It's simply a license violation, a civil matter between the violators (not Napster, but the users) and the licensor (not the RIAA, that's for damn sure - usually a label).
Ban FTP; it can be used to illegally distribute stuff!
If streaming is bad now what happens when the RIAA figures out how to charge us for it will it all of a sudden no longer be illegal despite the fact that the artists will still see little to no money for their hard work?
Ripped-Off: An individual forced to pay more for a CD than a casette (even considering any possible differnce in manufacturing cost)
Harassed: Individuals who excercised their right to the free expression on an idea by linking/posting the DeCSS code
Bottom-Feeding Scumsukers: Lawers for the recording and motion-picture industries
Come test your mettle in the world of Alter Aeon!
Before you charge somebody with *anything*, you have to clearly define the charges. That's all the RIAA is doing. They are not looking down on people and trying to teach people lessons like little children, as the article implies.
The real Fake Bruce Perens has
> may now also include certain uses of 'streaming'
> technologies from the Internet."
them internet pirates be smart, they be...
arrrr...
So if I go to a concert with a recording device, copy the music to an mp3, then post a picture from the record on the site and make the mp3 freely available I would be a bootlegging counterfiting online pirate?
Well lets see Radio is ok, but shoutcast isn't? hmm I always thought radio was just a differnt streaming medium. A single broadcast that anyone cas tuen into at any time.
I wonder when it will be illegal to do personal rendition streaming (AKA Singing...)
Am I wrong, or is the RIAA trying to write-out fair use? I had always thought that recording a broadcast off the radio [or TV] for personal, private purposes was considered fair use! Wasn't the Betamax case all about just this?
And now the RIAA is trying to tag FAIR USE with the slur of "Bootleg Recordings". I cry foul.
You know, I would really like to see some discussions from IAAL types on what can be done to change IP law so that situations like this do not arise again. IMHO, the economic model which has given rise to the RIAA is outdated. This is not a Katzism, it is simply a fact. Peer-to-peer sharing is here to stay, and without totalitarian rule overseeing every file transfer, it cannot be stopped. This leads to only one conclusion, as far as I can tell: fundamentally changing IP law. This would involve pain, certainly.
The analogy to buggy whip manufacturers in the early days of automobiles is apt here, I think. I fear their lobbying power, however. Should they be vindicated in the halls of Congress, it will be to our collective injury and a further erosion of our liberties in the name of profits and corporate self-interests, which are not, again IMHO, all that important in the long run. Should the members of the RIAA go belly-up five years from now, the economy and the Republic will continue to thrive.
- Rev.The sooner we get to true distributed file sharing (freenet - just try shutting it down!), the better. Napster will hold an interesting place in the history of media, but I think thats going to be the extent of its legacy.
/*
* Copyright (C) 1999 Derek Fawcus <derek@spider.com>
*
* This code may be used under the terms of Version 2 of the GPL,
* read the file COPYING for details.
*
*/
/*
* These routines do some reordering of the supplied data before
* calling engine() to do the main work.
*
* The reordering seems similar to that done by the initial stages of
* the DES algorithm, in that it looks like it's just been done to
* try and make software decoding slower. I'm not sure that it
* actually adds anything to the security.
*
* The nature of the shuffling is that the bits of the supplied
* parameter 'varient' are reorganised (and some inverted), and
* the bytes of the parameter 'challenge' are reorganised.
*
* The reorganisation in each routine is different, and the first
* (CryptKey1) does not bother of play with the 'varient' parameter.
*
* Since this code is only run once per disk change, I've made the
* code table driven in order to improve readability.
*
* Since these routines are so similar to each other, one could even
* abstract them all to one routine supplied a parameter determining
* the nature of the reordering it has to do.
*/
#include "css-auth.h"
typedef unsigned long u32;
static void engine(int varient, byte const *input, struct block *output);
void CryptKey1(int varient, byte const *challenge, struct block *key)
{
static byte perm_challenge[] = {1,3,0,7,5, 2,9,6,4,8};
byte scratch[10];
for(i = 9; i >= 0; --i)int i;
scratch[i] = challenge[perm_challenge[i]];
engine(varient, scratch, key); }
/* This shuffles the bits in varient to make perm_varient such that
* 4 -> !3
* 3 -> 4
* varient bits: 2 -> 0 perm_varient bits
* 1 -> 2
* 0 -> !1
*/
void CryptKey2(int varient, byte const *challenge, struct block *key)
{
static byte perm_challenge[] = {6,1,9,3,8, 5,7,4,0,2};
static byte perm_varient[] = {
0x0a, 0x08, 0x0e, 0x0c, 0x0b, 0x09, 0x0f, 0x0d,
0x1a, 0x18, 0x1e, 0x1c, 0x1b, 0x19, 0x1f, 0x1d,
0x02, 0x00, 0x06, 0x04, 0x03, 0x01, 0x07, 0x05,
0x12, 0x10, 0x16, 0x14, 0x13, 0x11, 0x17, 0x15};
byte scratch[10];
for(i = 9; i >= 0; --i)int i;
scratch[i] = challenge[perm_challenge[i]];
engine(perm_varient[varient], scratch, key); }
/* This shuffles the bits in varient to make perm_varient such that
* 4 -> 0
* 3 -> !1
* varient bits: 2 -> !4 perm_varient bits
* 1 -> 2
* 0 -> 3
*/
void CryptBusKey(int varient, byte const *challenge, struct block *key)
{
static byte perm_challenge[] = {4,0,3,5,7, 2,8,6,1,9};
static byte perm_varient[] = {
0x12, 0x1a, 0x16, 0x1e, 0x02, 0x0a, 0x06, 0x0e,
0x10, 0x18, 0x14, 0x1c, 0x00, 0x08, 0x04, 0x0c,
0x13, 0x1b, 0x17, 0x1f, 0x03, 0x0b, 0x07, 0x0f,
0x11, 0x19, 0x15, 0x1d, 0x01, 0x09, 0x05, 0x0d};
byte scratch[10];
for(i = 9; i >= 0; --i)int i;
scratch[i] = challenge[perm_challenge[i]];
engine(perm_varient[varient], scratch, key); }
/*
* We use two LFSR's (seeded from some of the input data bytes) to
* generate two streams of pseudo-random bits. These two bit streams
* are then combined by simply adding with carry to generate a final
* sequence of pseudo-random bits which is stored in the buffer that
* 'output' points to the end of - len is the size of this buffer.
*
* The first LFSR is of degree 25, and has a polynomial of:
* x^13 + x^5 + x^4 + x^1 + 1
*
* The second LSFR is of degree 17, and has a (primitive) polynomial of: * x^15 + x^1 + 1
*
* I don't know if these polynomials are primitive modulo 2, and thus
* represent maximal-period LFSR's.
*
*
* Note that we take the output of each LFSR from the new shifted in
* bit, not the old shifted out bit. Thus for ease of use the LFSR's
* are implemented in bit reversed order.
*
*/
static void generate_bits(byte *output, int len, struct block const *s)
{
u32 lfsr0, lfsr1;
byte carry;
/* In order to ensure that the LFSR works we need to ensure that the * initial values are non-zero. Thus when we initialise them from
* the seed, we ensure that a bit is set.
*/
lfsr0 = (s->b[0] << 17) | (s->b[1] << 9) | ((s->b[2] & ~7) < < 1) | 8 | (s->b[2] & 7); lfsr1 = (s->b[3] << 9) | 0x100 | s->b[4];
++output;
carry = 0;
for(bit = 0, val = 0; bit < 8; ++bit) {do {
int bit;
byte val;
byte o_lfsr0, o_lfsr1;
o_lfsr0 = ((lfsr0 >> 24) ^ (lfsr0 >> 21) ^ (lfsr0 >> 20) ^ (lfsr0 >> 12)) & 1; lfsr0 = (lfsr0 << 1) | o_lfsr0;
o_lfsr1 = ((lfsr1 >> 16) ^ (lfsr1 >> 2)) & 1; lfsr1 = (lfsr1 << 1) | o_lfsr1;
#define BIT0(x) ((x) & 1)
#define BIT1(x) (((x) >> 1) & 1)
combined = !o_lfsr1 + carry + !o_lfsr0;
carry = BIT1(combined);
val |= BIT0(combined) << bit;
}
*--output = val; } while (--len > 0);
}
static byte Secret[];
static byte Varients[];
static byte Table0[];
static byte Table1[];
static byte Table2[];
static byte Table3[];
/*
* This encryption engine implements one of 32 variations
* one the same theme depending upon the choice in the
* varient parameter (0 - 31).
*
* The algorithm itself manipulates a 40 bit input into
* a 40 bit output.
* The parameter 'input' is 80 bits. It consists of
* the 40 bit input value that is to be encrypted followed
* by a 40 bit seed value for the pseudo random number
* generators.
*/
static void engine(int varient, byte const *input, struct block *output) {
byte cse, term, index;
struct block temp1;
struct block temp2;
byte bits[30];
int i;
/* Feed the secret into the input values such that
* we alter the seed to the LFSR's used above, then
* generate the bits to play with.
*/
for (i = 5; --i >= 0; )
temp1.b[i] = input[5 + i] ^ Secret[i] ^ Table2[i];
generate_bits(&bits[29], sizeof bits, &temp1);
/* This term is used throughout the following to
* select one of 32 different variations on the
* algorithm.
*/
cse = Varients[varient] ^ Table2[varient];
/* Now the actual blocks doing the encryption. Each
* of these works on 40 bits at a time and are quite
* similar.
*/
for (i = 5, term = 0; --i >= 0; term = input[i]) {
index = bits[25 + i] ^ input[i];
index = Table1[index] ^ ~Table2[index] ^ cse;
temp1.b[i] = Table2[index] ^ Table3[index] ^ term; }
for(i = 5, term = 0; --i >= 0; term = temp1.b[i]) {temp1.b[4] ^= temp1.b[0];
index = bits[20 + i] ^ temp1.b[i]; index = Table1[index] ^ ~Table2[index] ^ cse;
temp2.b[i] = Table2[index] ^ Table3[index] ^ term; }
for(i = 5, term = 0; --i >= 0; term = temp2.b[i]) {temp2.b[4] ^= temp2.b[0];
index = bits[15 + i] ^ temp2.b[i]; index = Table1[index] ^ ~Table2[index] ^ cse; index = Table2[index] ^ Table3[index] ^ term;
temp1.b[i] = Table0[index] ^ Table2[index]; }
for(i = 5, term = 0; --i >= 0; term = temp1.b[i]) {temp1.b[4] ^= temp1.b[0];
index = bits[10 + i] ^ temp1.b[i]; index = Table1[index] ^ ~Table2[index] ^ cse;
index = Table2[index] ^ Table3[index] ^ term;
temp2.b[i] = Table0[index] ^ Table2[index]; }
for(i = 5, term = 0; --i >= 0; term = temp2.b[i]) {temp2.b[4] ^= temp2.b[0];
index = bits[5 + i] ^ temp2.b[i]; index = Table1[index] ^ ~Table2[index] ^ cse;
temp1.b[i] = Table2[index] ^ Table3[index] ^ term; }
for(i = 5, term = 0; --i >= 0; term = temp1.b[i]) {temp1.b[4] ^= temp1.b[0];
index = bits[i] ^ temp1.b[i]; index = Table1[index] ^ ~Table2[index] ^ cse;
output->b[i] = Table2[index] ^ Table3[index] ^ term; }
}
static byte Varients[] = {
0xB7, 0x74, 0x85, 0xD0, 0xCC, 0xDB, 0xCA, 0x73,
0x03, 0xFE, 0x31, 0x03, 0x52, 0xE0, 0xB7, 0x42,
0x63, 0x16, 0xF2, 0x2A, 0x79, 0x52, 0xFF, 0x1B,
0x7A, 0x11, 0xCA, 0x1A, 0x9B, 0x40, 0xAD, 0x01};
static byte Secret[] = {0x55, 0xD6, 0xC4, 0xC5, 0x28};
static byte Table0[] = {
0xB7, 0xF4, 0x82, 0x57, 0xDA, 0x4D, 0xDB, 0xE2,
0x2F, 0x52, 0x1A, 0xA8, 0x68, 0x5A, 0x8A, 0xFF,
0xFB, 0x0E, 0x6D, 0x35, 0xF7, 0x5C, 0x76, 0x12,
0xCE, 0x25, 0x79, 0x29, 0x39, 0x62, 0x08, 0x24,
0xA5, 0x85, 0x7B, 0x56, 0x01, 0x23, 0x68, 0xCF,
0x0A, 0xE2, 0x5A, 0xED, 0x3D, 0x59, 0xB0, 0xA9,
0xB0, 0x2C, 0xF2, 0xB8, 0xEF, 0x32, 0xA9, 0x40,
0x80, 0x71, 0xAF, 0x1E, 0xDE, 0x8F, 0x58, 0x88,
0xB8, 0x3A, 0xD0, 0xFC, 0xC4, 0x1E, 0xB5, 0xA0,
0xBB, 0x3B, 0x0F, 0x01, 0x7E, 0x1F, 0x9F, 0xD9,
0xAA, 0xB8, 0x3D, 0x9D, 0x74, 0x1E, 0x25, 0xDB,
0x37, 0x56, 0x8F, 0x16, 0xBA, 0x49, 0x2B, 0xAC,
0xD0, 0xBD, 0x95, 0x20, 0xBE, 0x7A, 0x28, 0xD0,
0x51, 0x64, 0x63, 0x1C, 0x7F, 0x66, 0x10, 0xBB,
0xC4, 0x56, 0x1A, 0x04, 0x6E, 0x0A, 0xEC, 0x9C,
0xD6, 0xE8, 0x9A, 0x7A, 0xCF, 0x8C, 0xDB, 0xB1,
0xEF, 0x71, 0xDE, 0x31, 0xFF, 0x54, 0x3E, 0x5E,
0x07, 0x69, 0x96, 0xB0, 0xCF, 0xDD, 0x9E, 0x47,
0xC7, 0x96, 0x8F, 0xE4, 0x2B, 0x59, 0xC6, 0xEE,
0xB9, 0x86, 0x9A, 0x64, 0x84, 0x72, 0xE2, 0x5B,
0xA2, 0x96, 0x58, 0x99, 0x50, 0x03, 0xF5, 0x38,
0x4D, 0x02, 0x7D, 0xE7, 0x7D, 0x75, 0xA7, 0xB8,
0x67, 0x87, 0x84, 0x3F, 0x1D, 0x11, 0xE5, 0xFC,
0x1E, 0xD3, 0x83, 0x16, 0xA5, 0x29, 0xF6, 0xC7,
0x15, 0x61, 0x29, 0x1A, 0x43, 0x4F, 0x9B, 0xAF,
0xC5, 0x87, 0x34, 0x6C, 0x0F, 0x3B, 0xA8, 0x1D,
0x45, 0x58, 0x25, 0xDC, 0xA8, 0xA3, 0x3B, 0xD1,
0x79, 0x1B, 0x48, 0xF2, 0xE9, 0x93, 0x1F, 0xFC,
0xDB, 0x2A, 0x90, 0xA9, 0x8A, 0x3D, 0x39, 0x18,
0xA3, 0x8E, 0x58, 0x6C, 0xE0, 0x12, 0xBB, 0x25,
0xCD, 0x71, 0x22, 0xA2, 0x64, 0xC6, 0xE7, 0xFB,
0xAD, 0x94, 0x77, 0x04, 0x9A, 0x39, 0xCF, 0x7C};
static byte Table1[] = {
0x8C, 0x47, 0xB0, 0xE1, 0xEB, 0xFC, 0xEB, 0x56,
0x10, 0xE5, 0x2C, 0x1A, 0x5D, 0xEF, 0xBE, 0x4F,
0x08, 0x75, 0x97, 0x4B, 0x0E, 0x25, 0x8E, 0x6E,
0x39, 0x5A, 0x87, 0x53, 0xC4, 0x1F, 0xF4, 0x5C,
0x4E, 0xE6, 0x99, 0x30, 0xE0, 0x42, 0x88, 0xAB,
0xE5, 0x85, 0xBC, 0x8F, 0xD8, 0x3C, 0x54, 0xC9,
0x53, 0x47, 0x18, 0xD6, 0x06, 0x5B, 0x41, 0x2C,
0x67, 0x1E, 0x41, 0x74, 0x33, 0xE2, 0xB4, 0xE0,
0x23, 0x29, 0x42, 0xEA, 0x55, 0x0F, 0x25, 0xB4,
0x24, 0x2C, 0x99, 0x13, 0xEB, 0x0A, 0x0B, 0xC9,
0xF9, 0x63, 0x67, 0x43, 0x2D, 0xC7, 0x7D, 0x07,
0x60, 0x89, 0xD1, 0xCC, 0xE7, 0x94, 0x77, 0x74,
0x9B, 0x7E, 0xD7, 0xE6, 0xFF, 0xBB, 0x68, 0x14,
0x1E, 0xA3, 0x25, 0xDE, 0x3A, 0xA3, 0x54, 0x7B,
0x87, 0x9D, 0x50, 0xCA, 0x27, 0xC3, 0xA4, 0x50,
0x91, 0x27, 0xD4, 0xB0, 0x82, 0x41, 0x97, 0x79,
0x94, 0x82, 0xAC, 0xC7, 0x8E, 0xA5, 0x4E, 0xAA,
0x78, 0x9E, 0xE0, 0x42, 0xBA, 0x28, 0xEA, 0xB7,
0x74, 0xAD, 0x35, 0xDA, 0x92, 0x60, 0x7E, 0xD2,
0x0E, 0xB9, 0x24, 0x5E, 0x39, 0x4F, 0x5E, 0x63,
0x09, 0xB5, 0xFA, 0xBF, 0xF1, 0x22, 0x55, 0x1C,
0xE2, 0x25, 0xDB, 0xC5, 0xD8, 0x50, 0x03, 0x98,
0xC4, 0xAC, 0x2E, 0x11, 0xB4, 0x38, 0x4D, 0xD0,
0xB9, 0xFC, 0x2D, 0x3C, 0x08, 0x04, 0x5A, 0xEF,
0xCE, 0x32, 0xFB, 0x4C, 0x92, 0x1E, 0x4B, 0xFB,
0x1A, 0xD0, 0xE2, 0x3E, 0xDA, 0x6E, 0x7C, 0x4D,
0x56, 0xC3, 0x3F, 0x42, 0xB1, 0x3A, 0x23, 0x4D,
0x6E, 0x84, 0x56, 0x68, 0xF4, 0x0E, 0x03, 0x64,
0xD0, 0xA9, 0x92, 0x2F, 0x8B, 0xBC, 0x39, 0x9C,
0xAC, 0x09, 0x5E, 0xEE, 0xE5, 0x97, 0xBF, 0xA5,
0xCE, 0xFA, 0x28, 0x2C, 0x6D, 0x4F, 0xEF, 0x77,
0xAA, 0x1B, 0x79, 0x8E, 0x97, 0xB4, 0xC3, 0xF4};
static byte Table2[] = {
0xB7, 0x75, 0x81, 0xD5, 0xDC, 0xCA, 0xDE, 0x66,
0x23, 0xDF, 0x15, 0x26, 0x62, 0xD1, 0x83, 0x77,
0xE3, 0x97, 0x76, 0xAF, 0xE9, 0xC3, 0x6B, 0x8E,
0xDA, 0xB0, 0x6E, 0xBF, 0x2B, 0xF1, 0x19, 0xB4,
0x95, 0x34, 0x48, 0xE4, 0x37, 0x94, 0x5D, 0x7B,
0x36, 0x5F, 0x65, 0x53, 0x07, 0xE2, 0x89, 0x11,
0x98, 0x85, 0xD9, 0x12, 0xC1, 0x9D, 0x84, 0xEC,
0xA4, 0xD4, 0x88, 0xB8, 0xFC, 0x2C, 0x79, 0x28,
0xD8, 0xDB, 0xB3, 0x1E, 0xA2, 0xF9, 0xD0, 0x44,
0xD7, 0xD6, 0x60, 0xEF, 0x14, 0xF4, 0xF6, 0x31,
0xD2, 0x41, 0x46, 0x67, 0x0A, 0xE1, 0x58, 0x27,
0x43, 0xA3, 0xF8, 0xE0, 0xC8, 0xBA, 0x5A, 0x5C,
0x80, 0x6C, 0xC6, 0xF2, 0xE8, 0xAD, 0x7D, 0x04,
0x0D, 0xB9, 0x3C, 0xC2, 0x25, 0xBD, 0x49, 0x63,
0x8C, 0x9F, 0x51, 0xCE, 0x20, 0xC5, 0xA1, 0x50,
0x92, 0x2D, 0xDD, 0xBC, 0x8D, 0x4F, 0x9A, 0x71,
0x2F, 0x30, 0x1D, 0x73, 0x39, 0x13, 0xFB, 0x1A,
0xCB, 0x24, 0x59, 0xFE, 0x05, 0x96, 0x57, 0x0F,
0x1F, 0xCF, 0x54, 0xBE, 0xF5, 0x06, 0x1B, 0xB2,
0x6D, 0xD3, 0x4D, 0x32, 0x56, 0x21, 0x33, 0x0B,
0x52, 0xE7, 0xAB, 0xEB, 0xA6, 0x74, 0x00, 0x4C,
0xB1, 0x7F, 0x82, 0x99, 0x87, 0x0E, 0x5E, 0xC0,
0x8F, 0xEE, 0x6F, 0x55, 0xF3, 0x7E, 0x08, 0x90,
0xFA, 0xB6, 0x64, 0x70, 0x47, 0x4A, 0x17, 0xA7,
0xB5, 0x40, 0x8A, 0x38, 0xE5, 0x68, 0x3E, 0x8B,
0x69, 0xAA, 0x9B, 0x42, 0xA5, 0x10, 0x01, 0x35,
0xFD, 0x61, 0x9E, 0xE6, 0x16, 0x9C, 0x86, 0xED,
0xCD, 0x2E, 0xFF, 0xC4, 0x5B, 0xA0, 0xAE, 0xCC,
0x4B, 0x3B, 0x03, 0xBB, 0x1C, 0x2A, 0xAC, 0x0C,
0x3F, 0x93, 0xC7, 0x72, 0x7A, 0x09, 0x22, 0x3D,
0x45, 0x78, 0xA9, 0xA8, 0xEA, 0xC9, 0x6A, 0xF7,
0x29, 0x91, 0xF0, 0x02, 0x18, 0x3A, 0x4E, 0x7C};
static byte Table3[] = {
0x73, 0x51, 0x95, 0xE1, 0x12, 0xE4, 0xC0, 0x58,
0xEE, 0xF2, 0x08, 0x1B, 0xA9, 0xFA, 0x98, 0x4C,
0xA7, 0x33, 0xE2, 0x1B, 0xA7, 0x6D, 0xF5, 0x30,
0x97, 0x1D, 0xF3, 0x02, 0x60, 0x5A, 0x82, 0x0F,
0x91, 0xD0, 0x9C, 0x10, 0x39, 0x7A, 0x83, 0x85,
0x3B, 0xB2, 0xB8, 0xAE, 0x0C, 0x09, 0x52, 0xEA,
0x1C, 0xE1, 0x8D, 0x66, 0x4F, 0xF3, 0xDA, 0x92,
0x29, 0xB9, 0xD5, 0xC5, 0x77, 0x47, 0x22, 0x53,
0x14, 0xF7, 0xAF, 0x22, 0x64, 0xDF, 0xC6, 0x72,
0x12, 0xF3, 0x75, 0xDA, 0xD7, 0xD7, 0xE5, 0x02,
0x9E, 0xED, 0xDA, 0xDB, 0x4C, 0x47, 0xCE, 0x91,
0x06, 0x06, 0x6D, 0x55, 0x8B, 0x19, 0xC9, 0xEF,
0x8C, 0x80, 0x1A, 0x0E, 0xEE, 0x4B, 0xAB, 0xF2,
0x08, 0x5C, 0xE9, 0x37, 0x26, 0x5E, 0x9A, 0x90,
0x00, 0xF3, 0x0D, 0xB2, 0xA6, 0xA3, 0xF7, 0x26,
0x17, 0x48, 0x88, 0xC9, 0x0E, 0x2C, 0xC9, 0x02,
0xE7, 0x18, 0x05, 0x4B, 0xF3, 0x39, 0xE1, 0x20,
0x02, 0x0D, 0x40, 0xC7, 0xCA, 0xB9, 0x48, 0x30,
0x57, 0x67, 0xCC, 0x06, 0xBF, 0xAC, 0x81, 0x08,
0x24, 0x7A, 0xD4, 0x8B, 0x19, 0x8E, 0xAC, 0xB4,
0x5A, 0x0F, 0x73, 0x13, 0xAC, 0x9E, 0xDA, 0xB6,
0xB8, 0x96, 0x5B, 0x60, 0x88, 0xE1, 0x81, 0x3F,
0x07, 0x86, 0x37, 0x2D, 0x79, 0x14, 0x52, 0xEA,
0x73, 0xDF, 0x3D, 0x09, 0xC8, 0x25, 0x48, 0xD8,
0x75, 0x60, 0x9A, 0x08, 0x27, 0x4A, 0x2C, 0xB9,
0xA8, 0x8B, 0x8A, 0x73, 0x62, 0x37, 0x16, 0x02,
0xBD, 0xC1, 0x0E, 0x56, 0x54, 0x3E, 0x14, 0x5F,
0x8C, 0x8F, 0x6E, 0x75, 0x1C, 0x07, 0x39, 0x7B,
0x4B, 0xDB, 0xD3, 0x4B, 0x1E, 0xC8, 0x7E, 0xFE,
0x3E, 0x72, 0x16, 0x83, 0x7D, 0xEE, 0xF5, 0xCA,
0xC5, 0x18, 0xF9, 0xD8, 0x68, 0xAB, 0x38, 0x85,
0xA8, 0xF0, 0xA1, 0x73, 0x9F, 0x5D, 0x19, 0x0B,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x33, 0x72, 0x39, 0x25, 0x67, 0x26, 0x6D, 0x71,
0x36, 0x77, 0x3C, 0x20, 0x62, 0x23, 0x68, 0x74,
0xC3, 0x82, 0xC9, 0x15, 0x57, 0x16, 0x5D, 0x81};
/*
* css-cat.c
*
* Copyright 1999 Derek Fawcus.
*
* Released under version 2 of the GPL.
*
* Decode selected sector types from a CSS encoded DVD to stdout. Use as a * filter on the input to mpeg2player or ac3dec.
*
*/
#include <stdio.h> /* __linux__ */
#include <stdlib.h>
#if defined(__linux__)
# include <getopt.h>
#endif
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include "css-descramble.h"
static struct playkey pkey1a1 = {0x36b, {0x51,0x67,0x67,0xc5,0xe0}};
static struct playkey pkey2a1 = {0x762, {0x2c,0xb2,0xc1,0x09,0xee}};
static struct playkey pkey1b1 = {0x36b, {0x90,0xc1,0xd7,0x84,0x48}};
static struct playkey pkey1a2 = {0x2f3, {0x51,0x67,0x67,0xc5,0xe0}};
static struct playkey pkey2a2 = {0x730, {0x2c,0xb2,0xc1,0x09,0xee}};
static struct playkey pkey1b2 = {0x2f3, {0x90,0xc1,0xd7,0x84,0x48}};
static struct playkey pkey1a3 = {0x235, {0x51,0x67,0x67,0xc5,0xe0}};
static struct playkey pkey1b3 = {0x235, {0x90,0xc1,0xd7,0x84,0x48}};
static struct playkey pkey3a1 = {0x249, {0xb7,0x3f,0xd4,0xaa,0x14}}; /* DVD specific ?
*/
static struct playkey pkey4a1 = {0x028, {0x53,0xd4,0xf7,0xd9,0x8f}}; /* DVD specific ?
*/
static struct playkey *playkeys[] = {
&pkey1a1, &pkey2a1, &pkey1b1,
&pkey1a2, &pkey2a2, &pkey1b2,
&pkey1a3, &pkey1b3,
&pkey3a1, &pkey4a1,
NULL};
static unsigned char disk_key[2048];
static unsigned char title_key[5];
static unsigned char sector[2048];
unsigned long sectors = 0;
unsigned long crypted = 0;
unsigned long skipped = 0;
int do_all = 0;
int do_video = 0;
int do_ac3 = 0;
int do_mpg = 0;
int verbose = 0;
int keep_pack = 0;
int keep_pes = -1;
#define STCODE(p,a,b,c,d) ((p)[0] == a && (p)[1] == b && (p)[2] == c && (p)[3] == d)
static void un_css(int fdi, int fdo)
{
unsigned char *sp, *pes;
int writen, wr, peslen, hdrlen;
while (read(fdi, sector, 2048) == 2048) {
++sectors;
if (!STCODE(sector,0x00,0x00,0x01,0xba)) {
fputs("Not Pack start code\n", stderr);
++skipped; continue;
}
if (do_all)
goto write_it;
pes = sector + 14 + (sector[13] & 0x07);
if (STCODE(pes,0x00,0x00,0x01,0xbb)) {/* System Header Pack Layer */ peslen = (pes[0x04] << 8) + pes[0x05];
pes += peslen + 6;
}
if (pes[0x00] || pes[0x01] || pes[0x02] != 0x01 || pes[0x03] < 0xbc) { ++skipped; continue; /* MPEG Audio */
goto write_it; /* AC3 Audio */
}
peslen = (pes[0x04] << 8) + pes[0x05];
hdrlen = pes[0x08] + 6 + 3;
if ((pes[0x03] & 0xf0) == 0xe0) {
if (do_video)
goto write_it;
} else if (do_mpg && pes[0x03] == (0xc0 | (do_mpg - 1))) {
} else if (pes[0x03] == 0xbd) {
if (do_ac3) {
int audiotrack = do_ac3 - 1;
if (pes[hdrlen] == (0x80|(audiotrack & 7))) {
hdrlen += 4;
goto write_it;
}
}
} else
++skipped;
continue;
write_it:
if (sector[20] & 0x30) {
++crypted;
css_descramble(sector, title_key);
sector[20] &= 0x8f;
}
writen = 0;
if (keep_pack)
sp = sector, peslen = 2048;
else if (keep_pes)
sp = pes, peslen = 2048 - (pes - sector);
else
sp = pes + hdrlen, peslen -= hdrlen - 6;
do {
wr = write(fdo, sp, peslen - writen);
sp += wr;
writen += wr;
} while (wr > 0 && writen < peslen);
}
}
static void usage_exit(void)
{
fputs("usage: css-cat [-t title-no] [-m mpeg-audio-no ] [-avPp12345678] vob_file\n", stderr); exit(2);
}
static char *title = "1";
static int parse_args(int ac, char **av)
/* fall through */
{
int c;
opterr = 0;
while (1)
switch((c = getopt(ac, av, "at:Ppvm:01234567"))) {
case 'a':
do_all = 1;
case 'P':
keep_pack = 1;
break;
case 'p':
keep_pes = 1;
break;
case 't':
title = optarg;
break;
case 'v':
do_video = 1;
++keep_pes;
break;
case 'm':
if ((do_mpg = atoi(optarg)) < 1 || do_mpg > 32)
usage_exit();
++keep_pes;
break;
case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8':
do_ac3 = c - '0';
++keep_pes;
break;
case EOF:
goto got_args;
default:
usage_exit();
break;
}
got_args:
keep_pes = (keep_pes > 0) ? 1 : 0;
return optind; }
int main(int ac, char **av)
{
int ai, fd;
char titlef[12];
if ((fd = open("disk-key", O_RDONLY)) == -1) {
perror("can't open disk-key");
exit(1);
}
if (read(fd, disk_key, 2048) != 2048) {
perror("can't read disk-key");
close(fd);
exit(1);
}
close(fd);
if ((ai = parse_args(ac, av)) >= ac)
usage_exit();
strcpy(titlef, "title");
strcat(titlef, title);
strcat(titlef, "-key");
if ((fd = open(titlef, O_RDONLY)) == -1) {
perror("can't open title-key");
exit(1);
}
if (read(fd, title_key, 5) != 5) {
perror("can't read title-key");
close(fd);
exit(1);
}
close(fd);
if (strcmp(av[ai], "-") == 0)
fd = 0;
else if ((fd = open(av[ai], O_RDONLY)) == -1) {
fputs("can't open VOB file ", stderr);
fputs(av[ai], stderr);
perror("");
exit(1);
}
if (!css_decrypttitlekey(title_key, disk_key, playkeys)) {
close(fd);
return 3;
}
un_css(fd, 1);
fprintf(stderr, "Total %lu, skipped %lu, crvid %lu\n",
sectors, skipped, crypted);
close(fd);
return 0; }
/*
* css_descramble.c
*
* Released under the version 2 of the GPL.
*
* Copyright 1999 Derek Fawcus
*
* This file contains functions to descramble CSS encrypted DVD content *
*/
/*
* Still in progress: Remove the use of the bit_reverse[] table by recoding * the generation of LFSR1. Finish combining this with * the css authentication code.
*
*/
#include <stdio.h>
#include <string.h>
#include "css-descramble.h"
typedef unsigned char byte;
/*
*
* some tables used for descrambling sectors and/or decrypting title keys *
*/
static byte csstab1[256]=, 0x36,0x2b,0x6e,0x2e,0x66,0x7b,
0xd3,0x93,0xdb,0x06,0x43,0x03,0x4b,0x96,0xde,0x9e, 0xd6,0x0b,0x4e,0x0e,0x46,0x9b,
0x57,0x17,0x5f,0x82,0xc7,0x87,0xcf,0x12,0x5a,0x1a, 0x52,0x8f,0xca,0x8a,0xc2,0x1f,
0xd9,0x99,0xd1,0x00,0x49,0x09,0x41,0x90,0xd8,0x98, 0xd0,0x01,0x48,0x08,0x40,0x91,
0x3d,0x7d,0x35,0x24,0x6d,0x2d,0x65,0x74,0x3c,0x7c, 0x34,0x25,0x6c,0x2c,0x64,0x75,
0xdd,0x9d,0xd5,0x04,0x4d,0x0d,0x45,0x94,0xdc,0x9c, 0xd4,0x05,0x4c,0x0c,0x44,0x95,
0x59,0x19,0x51,0x80,0xc9,0x89,0xc1,0x10,0x58,0x18, 0x50,0x81,0xc8,0x88,0xc0,0x11,
0xd7,0x97,0xdf,0x02,0x47,0x07,0x4f,0x92,0xda,0x9a, 0xd2,0x0f,0x4a,0x0a,0x42,0x9f,
0x53,0x13,0x5b,0x86,0xc3,0x83,0xcb,0x16,0x5e,0x1e, 0x56,0x8b,0xce,0x8e,0xc6,0x1b,
0xb3,0xf3,0xbb,0xa6,0xe3,0xa3,0xeb,0xf6,0xbe,0xfe, 0xb6,0xab,0xee,0xae,0xe6,0xfb,
0x37,0x77,0x3f,0x22,0x67,0x27,0x6f,0x72,0x3a,0x7a, 0x32,0x2f,0x6a,0x2a,0x62,0x7f,
0xb9,0xf9,0xb1,0xa0,0xe9,0xa9,0xe1,0xf0,0xb8,0xf8, 0xb0,0xa1,0xe8,0xa8,0xe0,0xf1,
0x5d,0x1d,0x55,0x84,0xcd,0x8d,0xc5,0x14,0x5c,0x1c, 0x54,0x85,0xcc,0x8c,0xc4,0x15,
0xbd,0xfd,0xb5,0xa4,0xed,0xad,0xe5,0xf4,0xbc,0xfc, 0xb4,0xa5,0xec,0xac,0xe4,0xf5,
0x39,0x79,0x31,0x20,0x69,0x29,0x61,0x70,0x38,0x78, 0x30,0x21,0x68,0x28,0x60,0x71,
0xb7,0xf7,0xbf,0xa2,0xe7,0xa7,0xef,0xf2,0xba,0xfa, 0xb2,0xaf,0xea,0xaa,0xe2,0xff
};
{
0x33,0x73,0x3b,0x26,0x63,0x23,0x6b,0x76,0x3e,0x7e
static byte lfsr1_bits0[256]=, 0x0b,0x0a,0x0d,0x0c,0x0f,0x0e,
0x12,0x13,0x10,0x11,0x16,0x17,0x14,0x15,0x1b,0x1a, 0x19,0x18,0x1f,0x1e,0x1d,0x1c,
0x24,0x25,0x26,0x27,0x20,0x21,0x22,0x23,0x2d,0x2c, 0x2f,0x2e,0x29,0x28,0x2b,0x2a,
0x36,0x37,0x34,0x35,0x32,0x33,0x30,0x31,0x3f,0x3e, 0x3d,0x3c,0x3b,0x3a,0x39,0x38,
0x49,0x48,0x4b,0x4a,0x4d,0x4c,0x4f,0x4e,0x40,0x41, 0x42,0x43,0x44,0x45,0x46,0x47,
0x5b,0x5a,0x59,0x58,0x5f,0x5e,0x5d,0x5c,0x52,0x53, 0x50,0x51,0x56,0x57,0x54,0x55,
0x6d,0x6c,0x6f,0x6e,0x69,0x68,0x6b,0x6a,0x64,0x65, 0x66,0x67,0x60,0x61,0x62,0x63,
0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x76,0x77, 0x74,0x75,0x72,0x73,0x70,0x71,
0x92,0x93,0x90,0x91,0x96,0x97,0x94,0x95,0x9b,0x9a, 0x99,0x98,0x9f,0x9e,0x9d,0x9c,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x89,0x88, 0x8b,0x8a,0x8d,0x8c,0x8f,0x8e,
0xb6,0xb7,0xb4,0xb5,0xb2,0xb3,0xb0,0xb1,0xbf,0xbe, 0xbd,0xbc,0xbb,0xba,0xb9,0xb8,
0xa4,0xa5,0xa6,0xa7,0xa0,0xa1,0xa2,0xa3,0xad,0xac, 0xaf,0xae,0xa9,0xa8,0xab,0xaa,
0xdb,0xda,0xd9,0xd8,0xdf,0xde,0xdd,0xdc,0xd2,0xd3, 0xd0,0xd1,0xd6,0xd7,0xd4,0xd5,
0xc9,0xc8,0xcb,0xca,0xcd,0xcc,0xcf,0xce,0xc0,0xc1, 0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf6,0xf7, 0xf4,0xf5,0xf2,0xf3,0xf0,0xf1,
0xed,0xec,0xef,0xee,0xe9,0xe8,0xeb,0xea,0xe4,0xe5, 0xe6,0xe7,0xe0,0xe1,0xe2,0xe3
};
{
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x09,0x08
static byte lfsr1_bits1[512]=, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff,
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24, 0x49,0x6d,0x92,0xb6,0xdb,0xff
};
{
0x00,0x24,0x49,0x6d,0x92,0xb6,0xdb,0xff,0x00,0x24
/* Reverse the order of the bits within a byte.
*/ static byte bit_reverse[256]=, 0x50,0xd0,0x30,0xb0,0x70,0xf0,
0x08,0x88,0x48,0xc8,0x28,0xa8,0x68,0xe8,0x18,0x98, 0x58,0xd8,0x38,0xb8,0x78,0xf8,
0x04,0x84,0x44,0xc4,0x24,0xa4,0x64,0xe4,0x14,0x94, 0x54,0xd4,0x34,0xb4,0x74,0xf4,
0x0c,0x8c,0x4c,0xcc,0x2c,0xac,0x6c,0xec,0x1c,0x9c, 0x5c,0xdc,0x3c,0xbc,0x7c,0xfc,
0x02,0x82,0x42,0xc2,0x22,0xa2,0x62,0xe2,0x12,0x92, 0x52,0xd2,0x32,0xb2,0x72,0xf2,
0x0a,0x8a,0x4a,0xca,0x2a,0xaa,0x6a,0xea,0x1a,0x9a, 0x5a,0xda,0x3a,0xba,0x7a,0xfa,
0x06,0x86,0x46,0xc6,0x26,0xa6,0x66,0xe6,0x16,0x96, 0x56,0xd6,0x36,0xb6,0x76,0xf6,
0x0e,0x8e,0x4e,0xce,0x2e,0xae,0x6e,0xee,0x1e,0x9e, 0x5e,0xde,0x3e,0xbe,0x7e,0xfe,
0x01,0x81,0x41,0xc1,0x21,0xa1,0x61,0xe1,0x11,0x91, 0x51,0xd1,0x31,0xb1,0x71,0xf1,
0x09,0x89,0x49,0xc9,0x29,0xa9,0x69,0xe9,0x19,0x99, 0x59,0xd9,0x39,0xb9,0x79,0xf9,
0x05,0x85,0x45,0xc5,0x25,0xa5,0x65,0xe5,0x15,0x95, 0x55,0xd5,0x35,0xb5,0x75,0xf5,
0x0d,0x8d,0x4d,0xcd,0x2d,0xad,0x6d,0xed,0x1d,0x9d, 0x5d,0xdd,0x3d,0xbd,0x7d,0xfd,
0x03,0x83,0x43,0xc3,0x23,0xa3,0x63,0xe3,0x13,0x93, 0x53,0xd3,0x33,0xb3,0x73,0xf3,
0x0b,0x8b,0x4b,0xcb,0x2b,0xab,0x6b,0xeb,0x1b,0x9b, 0x5b,0xdb,0x3b,0xbb,0x7b,0xfb,
0x07,0x87,0x47,0xc7,0x27,0xa7,0x67,0xe7,0x17,0x97, 0x57,0xd7,0x37,0xb7,0x77,0xf7,
0x0f,0x8f,0x4f,0xcf,0x2f,0xaf,0x6f,0xef,0x1f,0x9f, 0x5f,0xdf,0x3f,0xbf,0x7f,0xff
};
{
0x00,0x80,0x40,0xc0,0x20,0xa0,0x60,0xe0,0x10,0x90
/*
*
* this function is only used internally when decrypting title key
*
*/
static void css_titlekey(byte *key, byte *im, byte invert)
{
unsigned int lfsr1_lo,lfsr1_hi,lfsr0,combined;
byte o_lfsr0, o_lfsr1;
byte k[5];
int i;
lfsr1_lo = im[0] | 0x100;
lfsr1_hi = im[1];
lfsr0 = ((im[4] << 17) | (im[3] << 9) | (im[2] << 1)) + 8 - (im[2] &7); lfsr0 = (bit_reverse[lfsr0&0xff]<<24) | (bit_reverse[(lfsr0>>8)&0xff] << 16) | (bit_reverse[(lfsr0>>16)&0xff]<<8) | bit_reverse[(lfsr0>>24) &0xff];
combined = 0;
for (i = 0; i < 5; ++i) {
o_lfsr1 = lfsr1_bits0[lfsr1_hi] ^ lfsr1_bits1[lfsr1_lo];
lfsr1_hi = lfsr1_lo>>1;
lfsr1_lo = ((lfsr1_lo&1)<<8) ^ o_lfsr1;
o_lfsr1 = bit_reverse[o_lfsr1];
/*o_lfsr0 = (lfsr0>>7)^(lfsr0>>10)^(lfsr0>>11)^(lfsr0>>19);*/ o_lfsr0 = (((((((lfsr0>>8)^lfsr0)>>1)^lfsr0)>>3)^lfsr0)>>7);
lfsr0 = (lfsr0>>8)|(o_lfsr0<<24);
combined += (o_lfsr0 ^ invert) + o_lfsr1;
k[i] = combined & 0xff;
combined >>= 8;
}
key[4]=k[4]^csstab1[key[4]]^key[3];
key[3]=k[3]^csstab1[key[3]]^key[2];
key[2]=k[2]^csstab1[key[2]]^key[1];
key[1]=k[1]^csstab1[key[1]]^key[0];
key[0]=k[0]^csstab1[key[0]]^key[4];
key[4]=k[4]^csstab1[key[4]]^key[3];
key[3]=k[3]^csstab1[key[3]]^key[2];
key[2]=k[2]^csstab1[key[2]]^key[1];
key[1]=k[1]^csstab1[key[1]]^key[0];
key[0]=k[0]^csstab1[key[0]];
}
/*
*
* this function decrypts a title key with the specified disk key
*
* tkey: the unobfuscated title key (XORed with BusKey)
* dkey: the unobfuscated disk key (XORed with BusKey)
* 2048 bytes in length (though only 5 bytes are needed, see below) * pkey: array of pointers to player keys and disk key offsets
*
*
* use the result returned in tkey with css_descramble
*
*/
int css_decrypttitlekey(byte *tkey, byte *dkey, struct playkey **pkey)
for(; *pkey; ++pkey, ++i) {{
byte test[5], pretkey[5];
int i = 0;
memcpy(pretkey, dkey + (*pkey)->offset, 5); css_titlekey(pretkey, (*pkey)->key, 0);
memcpy(test, dkey, 5);
css_titlekey(test, pretkey, 0);
if (memcmp(test, pretkey, 5) == 0) {
fprintf(stderr, "Using Key %d\n", i+1);
break;
}
}
if (!*pkey) {
fprintf(stderr, "Shit - Need Key %d\n", i+1);
return 0;
}
css_titlekey(tkey, pretkey, 0xff);
return 1; }
/*
*
* this function does the actual descrambling
*
* sec: encrypted sector (2048 bytes)
* key: decrypted title key obtained from css_decrypttitlekey
*
*/
void css_descramble(byte *sec,byte *key)
{
unsigned int lfsr1_lo,lfsr1_hi,lfsr0,combined;
unsigned char o_lfsr0, o_lfsr1;
unsigned char *end = sec + 0x800;
#define SALTED(i) (key[i] ^ sec[0x54 + (i)])
lfsr1_lo = SALTED(0) | 0x100;
lfsr1_hi = SALTED(1);
lfsr0 = ((SALTED(4) << 17) | (SALTED(3) << 9) | (SALTED(2) << 1)) + 8 - (SALTED(2)&7);
lfsr0= (bit_reverse[lfsr0&0xff]<<24) | (bit_reverse[(lfsr0> >8)&0xff] << 16) | (bit_reverse[(lfsr0>>16)&0xff]<<8) | bit_reverse[(lfsr0>>24) &0xff];sec+=0x80;
combined = 0;
while (sec != end) {
o_lfsr1 = lfsr1_bits0[lfsr1_hi] ^ lfsr1_bits1[lfsr1_lo];
lfsr1_hi = lfsr1_lo>>1;
lfsr1_lo = ((lfsr1_lo&1)<<8) ^ o_lfsr1;
o_lfsr1 = bit_reverse[o_lfsr1];
/*o_lfsr0 = (lfsr0>>7)^(lfsr0>>10)^(lfsr0>>11)^(lfsr0>>19);*/ o_lfsr0 = (((((((lfsr0>>8)^lfsr0)>>1)^lfsr0)>>3)^lfsr0)>>7);
lfsr0 = (lfsr0>>8)|(o_lfsr0<<24);
combined += o_lfsr0 + (byte)~o_lfsr1;
*sec++ = csstab1[*sec] ^ (combined&0xff);
combined >>= 8;
}
}
/*
* A noddy program for getting and printing some info from the
* DVD-ROM drive.
*/
#include <stdio.h>
#include <fcntl.h>
#if defined(__OpenBSD__)
# include <sys/dvdio.h>
#elif defined(__linux__)
# include <linux/cdrom.h>
#else
# error "Need the DVD ioctls"
#endif
#include <sys/ioctl.h>
#include <errno.h>
#define DVD "/dev/cdrom"
int GetASF(int fd)
{
dvd_authinfo ai;
ai.type = DVD_LU_SEND_ASF;
ai.lsasf.agid = 0;
ai.lsasf.asf = 0;
if (ioctl(fd, DVD_AUTH, &ai)) {
printf("GetASF failed\n");
return 0;
}
printf("%sAuthenticated\n", (ai.lsasf.asf) ? "" : "not ");
return 1; }
int GetPhysical(int fd)
{
dvd_struct d;
int layer = 0, layers = 4;
d.physical.type = DVD_STRUCT_PHYSICAL;
while (layer < layers) {
d.physical.layer_num = layer;
if (ioctl(fd, DVD_READ_STRUCT, &d)<0)
{
printf("Could not read Physical layer %d\n", layer); return 0;
}
layers = d.physical.layer[layer].nlayers + 1;
printf("Layer %d[%d]\n", layer, layers);
printf(" Book Version: %d\n", d.physical.layer[layer].book_version); printf(" Book Type: %d\n", d.physical.layer[layer].book_type); printf(" Min Rate: %d\n", d.physical.layer[layer].min_rate); printf(" Disk Size: %d\n", d.physical.layer[layer].disc_size); printf(" Layer Type: %d\n", d.physical.layer[layer].layer_type); printf(" Track Path: %d\n", d.physical.layer[layer].track_path); printf(" Num Layers: %d\n", d.physical.layer[layer].nlayers); printf(" Track Density: %d\n", d.physical.layer[layer].track_density); printf(" Linear Density: %d\n", d.physical.layer[layer].linear_density); printf(" BCA: %d\n", d.physical.layer[layer].bca); printf(" Start Sector %#x\n", d.physical.layer[layer].start_sector); printf(" End Sector %#x\n", d.physical.layer[layer].end_sector); printf(" End Sector L0 %#x\n", d.physical.layer[layer].end_sector_l0);
++layer; }
return 1; }
int GetCopyright(int fd)
{
dvd_struct d;
d.copyright.type = DVD_STRUCT_COPYRIGHT;
d.copyright.layer_num = 0;
if (ioctl(fd, DVD_READ_STRUCT, &d)<0)
{
printf("Could not read Copyright Struct\n");
return 0;
}
printf("Copyright: CPST=%d, RMI=%#02x\n", d.copyright.cpst, d.copyright.rmi);
return 1; }
int main(int ac, char **av)
{
int fd;
char *device = DVD;
if (ac > 1)
device = av[1];
fd = open(device, O_RDONLY | O_NONBLOCK);
if (fd < 0) {
printf("unable to open dvd drive (%s).\n", device);
return 1;
}
GetASF(fd);
GetPhysical(fd);
GetCopyright(fd);
return 0; }
/*
* A noddy program which tries to reset all AGID's on the DVD-ROM drive. */
#include<stdio.h>
#include<fcntl.h>
#if defined(__OpenBSD__)
# include <sys/dvdio.h>
#elif defined(__linux__)
# include <linux/cdrom.h>
#else
# error "Need the DVD ioctls"
#endif
#include<sys/ioctl.h>
#include<errno.h>
static int fd;
#define DVD "/dev/cdrom"
int main(int ac, char **av)
{
dvd_authinfo ai;
char *device = DVD;
int i;
if (ac > 1)
device = av[1];
fd = open(device, O_RDONLY | O_NONBLOCK);
if (fd < 0) {
for(i = 0; i < 4; i++) {printf("unable to open dvd drive (%s).\n", device);
return 1;
}
memset(&ai, 0, sizeof(ai)); ai.type = DVD_INVALIDATE_AGID; ai.lsa.agid = i; ioctl(fd, DVD_AUTH, &ai);
}
return 0; }
Four little words
How the record industry used a tiny legislative amendment to try to steal recording copyrights from artists -- forever.
- - - - - - - - - - - -
By Eric Boehlert
Aug. 28, 2000
Four little words
Because prior to napster, no one had created a free means of simultaneously distributing many copies of the original. Casettes cost money to but and take time to copy. Ditto for CD-Rs. Because of the inconvienence factor and the plethora of non-infriging and fair use uses, they couldn't attack those anyhow.
Compare cassettes or cd-r's to Napster:
1. Napster takes barely anytime to distribute a file, if people are using broadband connectiosn.
2. The quality doesn't degrade at all from the original (the original is an already degraded mp3, yes, but once it's an mp3, no further degradation occurs).
3. Copies are free to make - there's no cost of materials.
4. Napster lets you distribute your files to the world at large, not just the very small set of people that you might know.
Napster isn't about sharing. Sharing is when you have something and give it to someone else. Napster is about distributing. That's what the labels that have joined the RIAA do, distribute music. Except when they distribute music, they've devised a way to pay royalties to artists. Napsters CEO even claims it's impossible to track downloads, let alone pay the artists their fair share....
Claims of price fixing aside (and if any one really cares to look it up, you'll find that one of the main motivations for the RIAA to enter into marketing deals which kept the cost of CD's high, was that when there weren't any minimum prices, the Walmarts and Targets of the world were eating the Mom and Pop stores for breakfast, hence the RIAA implented a minimum price in order to save the smaller stores) the RIAA really doesn't seem to be as bad as they're portrayed on these pages. If ANYONE could figure out a way to allow everyone involved in the creation, distribution, and promotion of music to the money they deserve, the RIAA, labels, and artists would surely jump at the opportunity...
Sorry about the rant.
Go to riaa.org and read their side. Yes, it's mostly propaganda, but in a way so are the stories we get here.
Once again, for good measure: gratuitous link.
My mom is not a Karma whore!
In 1922, the American Society of Composers, Authors and Publishers (ASCAP) felt gravely threatened by a newfangled technology called 'Radio', which they saw as a threat to their once lucrative profit streams.
Initially, ASCAP threatened to prosecute radio stations for playing their music, but eventually realised that they could not combat the rise of this 'Radio'. Instead they tried to milk it by setting up huge royalty fees (about $5000) to dissuade smaller stations and profit from larger ones.
In 1923 the radio stations banded together to fight ASCAP and formed BMI (Broadcast Music Incorporated) to try and break the monopoly ASCAP held over almost all recorded music.
At the time all the big sellers (the metallicas of this world) were with ASCAP, but BMI signed strange new artists with newfangled sounds like 'Rock n Roll' and 'R&B'. ASCAP arrogantly increased their royalties by 70% to try and kill off radio.
During the depression radio had a boom, and ASCAP brought in the lawsuits, in the infamous Waring case taking a radio station to the supreme court.
Instead of dying, radio thrived as a channel for this Rock n Roll sound, championed by popular personality DJs like Alan Freed and supported by lurative advertising. BMI's artists profited immensley and gained for the first time a huge amount of worldwide attention as their music was broadcast around.
I'll let you guess what happened from there on in. Feel free to draw parallels.
They define piracy as copying...
But doesn't "fair use" state that you can copy both for your own backup or to transer to a seperate medium as long as you don't listen to more than one at one time. Thus you can copy your CD's to Tapes (And MP3s) as long as you don't give them to someone else. In fact, even putting them up on your webserver should be legal, as it's just the same as showing someone (not playing mind you, just showing) a cassette tape or CD. They're the ones who are clicking download (which is when the copying actually takes place).
Hmmm, maybe they should sue the makers of all tape recorders, cd burners, and anything else that actually can be used to create copies.
I just don't get it. I really don't see what the problem is with Napster. Setting aside all the legal bullshit, the main fear of the RIAA and the Big Five is the loss of control over distribution. If the Big Five have less control over distribution, then they have less power to set and control price levels (which I might add is still considered perfectly legal). The reason that you pay AU$30 for a CD is not because it costs that much to make or that the artist gets even a tiny fraction out of it. It's because the only way you can get it is through a long chain of distributors, stores and other assorted middlemen all taking a piece of the big money pie. The artist doesn't get jackshit and the record companies get fat off the profits.
This is EXACTLY the reason why the rise of MP3 was so rapid. Suddenly, you could get music for FREE! Now the RIAA and the Big Five are complaining that MP3 means lost music sales. This is bullshit and a smokescreen for the distribution control agenda outlined above. Research shows that despite online piracy music sales have increased. Did you hear that you greedy fat-ass music executive leech? Increased! MP3 has allowed music lovers to experience more kinds of music, therefore increasing their range of tastes and subsequent need to buy.
Which makes the whole fear of nobody paying for music seem kinda silly doesn't it?
Self Bias Resistor
"The human brain is like an enormous fish. It's grey, slimy and has gills through which it can see." -Monty Python
----------
When the pin is pulled, Mr. Grenade is no longer our friend.
I once saw a TV show where a peace officer interviened in a shootout. The policeman got hurt and is now suing the perpetrator, AS WELL as the company that manufactured the weapon that hurt him. But the cop's weapon was OK? Blaming Napster for users committing piracy would be correct. Blaming Napster for what their users do, is rather stupid. The RIAA does in fact endorse CD distributions. Well, these are extremely easy to copy. Well, why doesn't the RIAA sue Sony, Panasonic, Plextor, Mitsumi and all the other myriads of CD-R manufacturers? In my opinion, the RIAA should be sued by the government a la Microsoft. Antitrust and monopoly. However, how does one boycott the RIAA? Not working for them? That may hurt them in the long run, but there will always be MCSE's that like fortune and glory. Can we stop buying CD's and just rip off the various artists out there? Sure, but that's not right either... As long as the RIAA is allowed to exist in the form it does today, it will roam free like a beast on a rampage. And YOU, my friend, will be watching... "Wars are won by politicians and lost by innocents" von Clausewitz
Wealth is the product of man's capacity to think. -Ayn Rand
The key issue is one of fair use. This murky item will eventually have to be resolved by the higher courts. I say, get this lower court ruling out of the way. Let's go to the next level. It's going to happen regardless of what ruling the lower court issues.
Another key issue is intent. This is Napster's stumbling block at this time. Can a legitimate use of this technology be identified? Yes. Is this solely for the purposes of circumventing copyright laws? No. Find a serious legitimate use, then this case will be eventually tossed out as it infringes on rights. The problem with napster, is that it is a business plan at this time is dubious. Things like gnutella are not.
DeCSS is also in this realm. Find any sort of legitimate use, then the courts will eventually toss out the case. The technology cannot be banned.
All of this is intramural football in the absence of a Supreme Court ruling. There is an important election (actually all elections are important) that is coming up. Choose wisely. Remember, the next President may nominate the Supreme Court Justice that casts the deciding vote on these issues. We do not want another Scalia and his lap-dog Thomas deciding these issues.
While this at first looks like a simple definition of terms it's more then that. The fourth 'definition' is a good example:
4. Online piracy is the unauthorized uploading of a copyrighted sound recording and making it available to the public, or downloading a sound recording from an Internet site, even if the recording isn't resold. Online piracy may now also include certain uses of 'streaming' technologies from the Internet."
Here the term 'license violation' or 'unauthorised uploading' is replaced with a much stronger term 'Online piracy' including all the prejudices that come with the term 'piracy'. Note the comparatively harmless sound (since we are already used to it) of 'Bootleg'.
I really wonder who cooked up these terms, internet piracy is not common language yet and so i wouldn't accept that term were i the defense. The RIAA members surely wouldn't like to be called 'social parasites' throughout the process, 'just for 'convenience sake', and no, 'social parasite' wouldn't be an abuse, merely a definition.
Interestingly while pretending to provide 'clear terms and definitions' they then proceed to make it vague by including "certain uses of `streaming' technologies" as if 'uploading' wasn't already very inprecise to start with.
Why didn't they use a definition like "providing unauthorized public access to copyrighted music via the internet". That would be a much clearer definition. But i think they want to get an exemplary case which they then can further extend and apply to other forms of music exchange via the net (is it also forbidden to send a music-file to a friend, maybe even one i got of one of his own CD's?).
As long as they don't redefine 'uploading' or 'streaming' their term 'internet piracy' doesn't apply at all to napster. The music files aren't 'uploaded' to some central server, they are copied peer to peer (the only thing that is 'uploaded' is a list of names), and the copying process is a simple file transmission via the internet and wouldn't be termed 'streaming'. The only 'uploading' of music files that takes place is the copying of music on a personal PC which may well be 'authorized use' if a person chooses to use his PC as a CD player (in about ten years time you probably can't clearly distinguish between PC and CD-player anyway).
"By the way if anyone here is in advertising or marketing... kill yourself." -- Bill Hicks
I have a feeling that we as a society have been down this path before, and we fail to learn from our history.
Prior to the invention of the movable type printing press, in order to copy a book or other paper it required someone sitting down with a pen and paper and doing it by hand.
Prior to this technology it was very difficult to mass produce literature, and as such books were incredibly rare and expensive.
I guess the point is, the copyright laws were pretty much created to combat the problems the new technology generated. Do you think now that there is new technology that makes it even easier to copy books or music the laws will not be strengthened rather than removed?
It is not unthinkable as we start to flesh out the problems of the Internet that we will see more police involvement. There have been reports of huge problems with pedophilia, identity theft, fraud, breaking into systems, etc. over the years. The Internet is drawing attention to itself, and many people are outraged by the stories they hear.
Your claim that it can't be stopped is rather naive. As our country grew westward in the 19th century we had bad people doing bad things and getting away with it, also thinking that they could not be stopped because the land was so wide and they could hide easily.
That obviously changed as the land became more populated, and tax dollars were spent hiring law enforcement officers.
The Internet will most likely evolve in a similar fashion.
As far as the issue there are with crossing nation borders, those can be dealt with as well by cooperation between police agencies. The same technology that connects citizens can also be used to connect police agencies. Perhaps the need for such enforcement will result in cooperation and a world government.
It's hard to say... There's a whole future ahead of us. There aren't very many people who want to live in a lawless anarchy, and as such our society will adapt to bring order to the chaos, or at least try to.
...or rather let the artists and the open source community work together to create a an electronic marketplace that does not involve the riaa. I read an interesting article on osopinion.com that really intrigues me. I have posted a few quotes from the article to give you an idea of the possible future. I highly encourage you to read the original article - Here is the link in plain text(I wouldn't want to break any laws):-)
D avidNimmons1.html
http://www.osopinion.com/Opinions/DavidNimmons/
Mr. Nimmons basically says open source has the answer. Mr. Nimmons speaks of "a foundation run by musicians for musicians, will exist for the sole purpose of supporting musicians, providing the infrastructure and services presently supplied by the record companies." Secondly, Mr. Nimmons also states "By collaborating with the free software community, the foundation will provide the music community with an electronic marketplace to sell their work and services directly to consumers."
He concludes, "We,the free software community, help the music community establish an electronic marketplace and they pay us a portion of their proceeds to run and maintain the system and also to fund future development of software specific to their needs." I believe this man has an answer to a problem that could be beneficial, both financially and socially, to artists and the open source community. Fellow open source followers, here is our chance to do away with the riaa and to free the artists from the clutches of greedy corporations... let's jump on this opportunity!
We've always had this idea of distributed sharing on the internet for as long as I've been connected... since the late 1980's anyway.
They were called FTP sites. Later we had fsp, and then after that came the Web.
These technologies worked great except that nobody knew you existed unless you advertised. From that concept came the directory services... WAIS and then later yahoo, lycos, altavista, etc.
Napster came out and provided a directory service which catered solely to the purpose of finding pirated music. So yes, they were an easy target to shut down, a directory service that all connected to.
But the idea that you will do peer to peer networking on a grand scale is technically flawed. Anybody who has ever tried to manage a large network of Win95 machines running NetBEUI would understand this.
As the network grows larger, the percentage of network bandwidth which is required to maintain the connections between the nodes, passing queries for services, etc. grows at an almost exponential pace... until at some point you are using more bandwidth handling the overhead than actually sharing data.
Nobody will need to shut down freenet, it will collapse under it's own weight, or it will remain niche and isolated and a bother to nobody.
Napster was a technically sound solution, it was unfortunately ethically and legally flawed.
This article at Salon.com describes how the RIAA suceeded in getting "four little words" added to the copyright light via Congress, that would essentially give them full ownership of all music written by musicians under contract within the past 30 years. Until now, after 35 years, the musician could reclaim copyright ownership, if they wanted to peddle their music to another distributor.
Fortunately, according to the article, an observant pro-musician lobbyist discovered it, and after a huge uproar, negative media, and explaining things to congress, the RIAA has requested Congress to nullify the terms that negatively impact musicians.
-----
D. Fischer
ShoutingMan.com
Wow. I had no idea that the RIAA members were fans of Star Trek.
;)
You see, there's this classic rule in Trek, known as the 'Rule of Three.' The idea is, name two things that are real, and then, in order to make it plain that it's similar but futuristic, name one made up thing. i.e.: "the great philosophers, Plato and Decartes and Surak."
In the case of the RIAA annoucement, they've named three forms of copyright infringement and are pretending that the fourth is too.
Now I just want to know who their favorite character is
-- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
Never thought I'd say it, but here I am. That article is _very_ informative (if it's true).
Tweet, tweet.
-
Napster isn't about sharing. Sharing is when you have something and give it to someone else. Napster is about distributing.
Are you a Lawyer? Your word games confuse me. Who cares if it is sharing or distributing? What is the difference? Okay, try this:- There are musicians who want to distripute their music to as wide an audience as possible, who encourage people to trade their music on Napster. (e.g., there is a musician called Chris who posts in most Napster debates on
/.) - This is legal.
- The Judge should have followed the Betamax precedant, i.e. there are legitimate uses for the video recorder: it is legal; there are legitimate uses for Napster: it is legal.
Please explain how you distributing/sharing word games demonstrate that there anything illegal about Napster.- Because prior to napster, no one had created a free means of simultaneously distributing many copies of the original.
Uh... duh!Throughout the first half of your post, you carefully explain that Napster is a very efficient method to distribute mp3s. It is not illegal to be good at what you do.
-
the Walmarts and Targets of the world were eating the Mom and Pop stores for breakfast, hence the RIAA implented a minimum price in order to save the smaller stores
Aw, how sweet! The RIAA are ripping me off to keep small business alive, aw god bless 'em - aren't they kind.But I'm not saying Napster is in the right. It's just (1) that there is this little thing called the law, and even the RIAA have to live by it (2) it is a matter of liberty. I want the right to write file sharing programs. File sharing programs do have legitimate uses and a case like this could create dangerous legal precedants.
smiles.
G
I don't see how slashdot could like it, personally, being that it actively disregards licenses while slashdot cries foul whenever the GPL appears to be in danger of violation...
:-) I would be afraid of the threat that is to my little empire.
I would have to agree with you on this, although I can't totally agree with your eariler post (i.e. that RIAA is not that bad). I personally think this is an issue where both sides are wrong. I believe that artists have a right to be compensated to whatever degree their works are marketable (although how some of the crap "Top 40" artists put out is marketable enough to make them obscenely wealthy, I will never know), and piracy artificially deflates that marketability. However, I think the internet age offers newcomers an opportunity to get known without the overhead of a label (or less overhead anyway), and old-timers the opportunity to distribute stuff they would personally own if they had the guts to make the break. If I were RIAA (as if it's one person
I agree with IP and patents. I think they offer incentives to create and innovate. You seem to agree that these are not fundamentally bad things, but I would add that the abuse of these laws is becoming a mainstream business practice, which I do think is bad.. For example, purchasing a license to own a recording of a song I want to listen to at my discretion should be independent of the medium that song is distributed on (i.e. CD vs. Cassette). If that medium becomes damamged, or is superceded by a better technology, I should not be forced to purchase a new license with the new medium. At most, I should be responsible for the physical reproduction costs. Unfortunately, as long as the labels can charge me for a new license with each copy of the physical medium, they unvariably will do so. So, while Napster users are shafting the labels and "artists", the labels are shafting their legitimate customer base. It seems like a lose-lose situation for me. As long as they are getting screwed, many customers will continue to turn to illegal media to obtain music, and as long as the labels think they are losing income to pirating, they will continue to milk legitimate customers for all they can squeeze out. The solution? We should all listen to country music on the radio. Then we would never be tempted to go spend a bunch of monay for an overpriced CD. And if we survived the ordeal, we may indeed live to see the demise of RIAA. I'm still working on a similar alternative for the film industry, so we can drive MPAA out of business. Any suggestions.
Do not teach Confucius to write Characters
Today's Sesame Street was brought to you by the number e.
"Fair pay" for the work involved in making and distributing music:
Artist: Royalty per person for each work (not each copy of that work)
Label: Reasonable compensation for promotional work
Retailer: Profit margin comparable to other products
RIAA: Big, fat ZERO.
Keep repainting the manifesto on the side of the barn in the middle of the night. Eventually, you end up with "All animals are equal, but some are more equal than others."
Serious about your frustration with the RIAA and corporatism in general? Try Civil Disobedience. No, really. Be willing to get arrested for possessing the tools we take for granted. I am. But read on...
First, a summary, since this is long and will get chopped:
-
We can't win if we look like the bad guys. Therefore,
we must clean up our act, both public and private, and be
willing to address the real, underlying concerns of our
fellow artists and consumers.
-
Corporations don't trust individuals; individuals don't
trust corporations. Therefore, we must gather all of the
individuals together on our side, artists and consumers
alike, instead of allowing the corporations to divide us.
-
The future is change; everyone is scared. The industry
is afraid, but also opportunistic. It believes it can secure a
future for itself built by legally forcing nature to behave
itself. It attacks the fears of consumers to create this legal
impetus.
-
The "Tragedy of the Commons" is worrisome. Individual
artists are afraid that if they open themselves up to a
meritocracy, they'll be raped. We have counterexamples, and we
also need to set expectations.
We can't win if we look like the bad guysBefore you don your DeCSS Shirt, it's important that we get our act together and learn the very powerful art of spin . Don't sneer and say that's beneath us. Right now, the RIAA and MPAA are mobilizing a very powerful political engine. They are engaging in a classic tactic, painting our community's members as pirates and criminals in the public's eye. It's our job to spin right back at them, to recast the debate in terms that make us clearly the good guys, and them clearly the corporate Goliath, out to trample the rights of individual artists and consumers. Here's how...
Start giving props to artists. Start decrying the fact that there's no widely available, secure, trustable infrastructure for "tipping". Start pitting the labels against the individual artists, whom you would compensate directly, if there were a reliable means to do so. Blame the corporate hegemony for this situation. Traditional corporations exist for one reason alone: profit ; profit to the exclusion of all else, including the rights of artists, and the rights of individual consumers. Start pitting the labels against consumers, by using inflammatory phrases like "abrogation of our rights" and "corporate hegemony" (please understand what they mean and be able to defend them calmly, though). As soon as we can swing the focus of our fellow consumers' mistrust and cynicism to the industry, as soon as we can paint ourselves the David in this battle, we will begin changing things.
The reasons for this are simple:
My freshman year in college, someone stole 250 CDs from my dorm room. 250 CDs that I had worked very hard to afford, and had worked very hard to acquire (many rare imports, anime, etc.). I felt hurt, violated, confused, angry, and all of that. The RIAA and MPAA are trying to connect with those feelings in the consumer public.
We need to be going for the same connection, while also making the connection between individual freedom and liberty. We need to make it clear that we're all for just compensation, and that we don't need Goliath's hand to ensure that compensation. We need to show our fellow consumers that the industry is just in the game for the sake of revenue, and that they don't give a damn about consumer rights, nor do they trust consumers in the least. Yet they ask for our trust that they will justly compensate artists, that they will respect our rights to fair use, that they will treat us as equals (IANAL, but a corporation is legally considered a person.)
Corporations don't trust individuals; individuals don't trust corporationsThe RIAA and MPAA would have you believe that every artist and "legitimate consumer" out there is on their side, and that everyone else is a pirate. We know that's wrong, but what do we do about it?
Get all the individuals on the same side. Artists are individuals. Consumers are individuals. Everything in between the two is corporate infrastructure. The internet makes that corporatism irrelevant to the kind of relationships we could be building with our fellow individuals.
If I play your song, and I like it, I'll give you a tip. If I play it all the damned time, I'll give you big tips, frequently. If Metallica pulled their heads out, they'd understand that they'd make a lot more from me letting me tip them than they are right now, since I won't buy anything new of theirs (even though I really want to).
The future is change; everyone is scaredThings we've taken for granted, as a society, as individuals, and as corporations, are all in the process of changing dramatically and radically. Specifically, traditional notions of property become more meaningless with each passing day. We know how to treat tangible items as property (you're stealing it if you deprive me of it without my consent), but we don't know how to treat intangibles as property; after all, if you copy it from me, how are you depriving me of it?
And if you think that distinction is cut-and-dried, and that it just means we need two classes of property, intellectual and tangible, think again. What's going to happen in a decade or three when nano-technology makes tangible property available to anyone with a handful of garbage, a replicator, and a design?
Now, it's understandable that corporations might be afraid. After all, they might disappear. Or have to reinvent themselves radically. I think they're pretty well aware of that fact. The issue, ultimately, is one of control. The industry wants to control its destiny, but it doesn't have that kind of power. It seeks to create that power, artificially, by lobbying to create laws like the DMCA, that curtail individual rights that are far more powerful than they were when they were granted, 225 years ago, before there was an Internet.
I don't know about you, but I don't want to be controlled by a corporation. I want the freedom to interact with my fellow individuals, to share and communicate and transact by our own rules. I want to write code and trust that you'll compensate me for it justly. And I do. Literally. I have a 100% GPL clause for the work I do. And I trust the community and individuals to be faithful to one another, and to support one another. I don't need a law or a corporation to enforce what ought to be human decency.
The "Tragedy of the Commons" is worrisomeThe idea that some people will steal all the goodies is worrisome. They can't. Unlike the commons about which "The Tragedy of the Commons" was written, you can't trample up the grass around an artist. You can't turn a director into mud by copiously copying her work.
You can refrain from contributing to their livelihood. You can enjoy their work and simply not tip them, even though you can afford to tip them. Fine. We already have a really good term for that in place: cheap asshole. Perhaps we could get it made into a legal term?
Anyway, there are natural responses to the problem of the cheap asshole. The first is the pillory, metaphorically speaking. A good tipping infrastructure will allow you to leave your tips either anonymously or with credit. An advogato-like trust metric will allow folks to rate your generosity in comparison to your means. A well-deployed micro-accounting infrastructure will make artists, producers, technicians, and so forth, accountable for how they spend the tips in pursuit of their art. All of that means that assholes will be highlighted in red, and the object of public scorn.
This is as it should be, and there is a long tradition of such treatment. Read A Christmas Carol if you doubt me. Everyone hated Scrooge because he was... well, you know. A c.a.
The second is based on what I call "laws of information physics". The two fundamental laws of information physics are:
These laws can be exploited to prevent the c.a.'s from propagating:
Such infrastructure can be exploited in a lot of other ways that bring back our ability to trust one another, and to build community even in the massive scale of the Internet and a global economy. People who've had hard times could "get a break." Or if you're a real hard-liner about people overcoming circumstance, you could set your own metrics to shun anyone who claimed hard times, or anyone who was rich without working for it, and not generous with their wealth. "The possibilities," as they say, "are limitless."
Getting there from hereI'd recap, but you can scroll to the top for that. The bottom line is that we need to pay attention to the fears and concerns of our fellow individuals, and address those, and not just go spouting off about how we're going to do whatever we please and the industry can't stop us. We all believe the industry can't stop us, because ultimately, we can hide. But who wants to hide? And who wants a world in which sharing is a criminal act? So don't feed their fire. Help your fellow artists, consumers, individuals understand how we can build a better future together, without corporate hegemony.
And be prepared to get arrested in the meantime. But when you do, make sure you come off sane, rational, and reasonable. Make it clear that the man is putting you down. If you're not calm, careful, and likable, your fellow consumers and artists are going to see exactly what the RIAA and MPAA want them to see. And away goes your freedom and their freedom.
P.S. I'd have crossposted this to advogato, but I'm not certified by anyone as having done anything special. So if you're of a mind to, and have a decent cert there, please certify me if you think I can add value to the discussions there. Thanks.
You need to pay a little more attention to the intellectual property implications of labels vs. mp3.com. mp3.com does many things horribly (annoying page layout, tottering servers, terrible messageboards) but if you look at their artist agreement there are some extremely important points that I sure hope potential competitors take seriously:
- Nonexclusive contract, with the artist continuing to OWN the mechanicals. Contrast this with any majors contract in which the label owns the mechanicals, the songs, even the band name and the website or the Artist's name itself (!)
- Contract is only renegotiable with the agreement and acknowledgement of the artist! If this seems obvious check out some music biz contracts- see how often the contract is unilaterally renegotiable by the label. That means 'we can change it to whatever we want, after the fact, and you already signed off on it'.
- 49.9999% royalty none of which is recoupable- compared to a tenth or hundredth of that much, already pledged to recoup recording costs mandated by the label. In other words, on mp3.com you get $40, or maybe $400 (what I'm hoping for in the mail) or even $4000 if you have a _lot_ of listens and CD sales- and on the major labels you watch a lot of money go by and keep none of it, nada.
Honestly- it's good to be skeptical, and there are plenty of reasons to knock mp3.com. The deal they offer is not one of them. For all intents and purposes, and even with all their flaws, mp3.com is something new, and the key point (to me) proving that is the nonexclusive nature of their deal- 'sign' with mp3.com and you continue to be totally free to move. Worst that can happen is that you decide to remove your stuff and mp3.com are slow to do it- they make no claim or attempt to own your IP, they just ask for very extensive RIGHTS to USE it, which is waaaaay different, and nothing like as harmful as signing away your creative work to a label.I try to avoid obsessively posting all over mp3 threads with my little links and all ;P but I needed to open my mouth here, because even if mp3.com itself doesn't survive the next decade, as an artist I need something LIKE mp3.com, something that will strike the same terms for use of my music. I'm happy to sign over quite extensive rights to _use_ the stuff- but I'm going to keep the mechanicals, and keep ownership of myself and my name and the tunes, and I'm going to want to see that the contract doesn't get to change the rules about this without my okaying it. And mp3.com walks this line very honorably. It's almost as if they were behaving like some more honorable industry and trying to come up with a fair contract for artists. *shock!* *horror!* ;)
<rant> ... and then they go on to ask that the major contributor boycott the campaing finacement off the democrats or give much less, to show Gore-Libermann that they don't support their censorship plan. For sure they had all the time needed to talk about what they wanted.
It's always funny to see them lie like that. I was watching Larry King on CNN the other night and he interviewed some fsck from the label and the movie producer of Show Girls. Everyone agreed that goverment censorship was bad, that without free speech great movies could never have been made, blah, blah
Then they turn around, they sue 2600, they sue everyone who wants to express themselves or who dares to place/talk about DeCSS on their websites, they treaten ISP, they treaten my University with legal action, they almost got me kicked out and they even have the guts to try to take away my fair use right for the music and movies I already overpaid?
</rant>
wiZd0m
If you want to sell me a mass-market album, a software package, or a video in a consumer setting, there should be no shrink-wrap licenses, no click-wrap licenses, no UCITA, and no DMCA-enforced access controls after the sale. Just your merchandise, my money, and the normal copyright / sales / private property laws.
By the way, if you look at the current version of the GNU Public License closely, you'll see that it differs in a very essential respect from most shrinkwrap "licenses".
Shrinkwrap "licenses" start from the bogus premise that you are bound by them, and then proceed to try to take away rights that you, as an owner of a legal copy of a copyrighted item, already have under the law. The GNU Public License acknowledges that you have rights under copyright law, and states that you do not need to agree to the GPL to exercise those rights. The only reason for anyone to agree to the GPL is to gain authorization to perform additional actions (most notably redistribution) which are not part of the default rights you get from copyright law.
To put it more succinctly, shrinkwrap "licenses" are BAD because they distort contract law in the service of taking away your right to make use of your own property. The GPL doesn't do this.
How could this be applied to CD sales? One way might be to include a license in the liner notes that allows buyers to give away copies of songs. Say, "if you accept this license, you can share promotional MP3s of these songs, encoded at a rate of 64Kbps" ... or "you can make CD-quality copies of these songs beyond the limits of Fair Use if you go to http://www.mymusicsite.com/ and pay for the songs you copy." The key here is not that everything is free (as with GPL) but that you would be offering extra value to customers, instead of beating them with a stick.
Well put! My job is to foment rebellion, not organize it, so your suggested actions are an wonderful complement :)
Here's another one that I'm planning: Send real money to artists. Say you're listening to an Oingo Boingo and decide that, if such a system existed, you'd tip the boys. So write a check for a buck and send it away! Even if they never cash it, if enough artists get enough random bucks flowing in in envelopes, they'll get the clue. They'll realize that, if infrastructure existed, they could sever their ties with the beast.
No, it's not practical and scalable. But it makes a point, and that's what's important.
That's correct, as it is now, but I think the main reason is because the technology just hasn't evolved enough yet.
.ogg files) just isn't very convenient.
First, not many people has a fat pipe to the internet and therefore downloading a lot of MP3's (or hopefully soon
Second, most peolpe listen to music on their stereo, not on their computer (better sound, easier, etc.) and most peolpe doesn't have a "connection" from their computer to the stereo. If you have a "connection" from you computer to your stereo, then you still can't control it with your stereo or your remote, which, well sucks...
It has to be atleastas easy to use as existing technology (CD's), before it will be widely used.
Solutions to this is on the way though. Take a look at what Adomo is doing.
The Artists Coalition would probably also like to hear from those of us that would actively support a voluntary, tip-based, just compensation system.
In addition to your congressional representive, you might want to cc: your notes to mine, Rick Boucher, who's one of the forces behind repealing the "work for hire" mess described in this salon article.
Finally, go visit fairtunes, mentioned a few weeks ago in this slashdot story.
crime pays when corporate pigs can't afford to put gas in their BMWs.
There are many legitimate applications for being able to manipulate audio and video data. Making compilations for personal use, making short film clips for use in reviews or in teaching classes, etc. But let's focus on repairs.
Some repairs that you might do to music: using a scratch and hiss remover program to clean up the music that you are transferring from records and tapes to CD-R; adjusting the volume of a song so that all of the songs in a home-made compilation play back smoothly. I learned the hard way that CDs are not mastered to a common reference level.
Then there's the whole CSS / DeCSS / Open Source Linux DVD player mess. The industry picked a system that creates obstacles to playback (you must decrypt a disc to play it), but that does not pose any barrier to counterfeiters with access to professional equipment (who don't even need to break the encryption). Here the Linux crowd tried to reverse engineer the system in order to build a Linux DVD player application (read: something that would promote the sales of DVD-Video discs), only to get kicked in the teeth.
In any manegerial position I ever find myself in, I will be forced to view with disfavor the ethics of any programmer or technical person who worked for RIAA or MPAA affiliated companies after the start dates of their lawsuits (Or perhaps a short time thereafter, as locating a new job can sometimes be difficult.) I shall never advocate the hiring of such a person in my company.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
4. Online piracy is the unauthorized uploading of a copyrighted sound recording and making it available to the public, or downloading a sound recording from an Internet site, even if the recording isn't resold. Online piracy may now also include certain uses of 'streaming' technologies from the Internet.
First of all they make the distinction between uploading, downloading and streaming. In pure TCP/IP terms all these acts are the same... a uni-directional flow of data yet they single out these three practises. However gnutella is a lot more focussed on 'transferring' - seems fine to me.
4. Online piracy is the unauthorized uploading of a copyrighted sound recording and making it available to the public
So if for example I upload a file to a site... that's fine. So provided it isn't me that makes the file I upload publically available then its perfectly ok. So now when I upload a file to geocities i do nothing wrong, and similarly when geocities ftpd sets the file world readable it does nothing wrong.... no piracy there.
downloading a sound recording from an Internet site
The word 'site' typically only descibes passive services like websites & ftp sites. Napster on the other hand is more interactive and typically you would say "Napseter Server" or "Napster User" and not "Napster Site". If someone talked about a napster site I would immediately think of this one.
Online piracy may now also include certain uses of 'streaming' technologies from the Internet.
It may now!!!. Sounds to me like "Streaming didn't used to be a crime but we are going to pretend it is one now" or perhaps they mean "We dont really know whether it is or not".
Really if those are the definitions we are up against i find it hard to believe the lawyers, who are much scorned for bending the words of legislation against the spirit that legislation was created in, cant come up with a half decent defence.
The most annoying problem with gnutella (that I find) is getting hit with so many searches, most of which are for porn.
I guess this is necessary to a point if there's not going to be a central directory that could be shut down. IMHO though, the next step would be to have a distributed system that would organise itself into branches based on relevant keywords. (It wouldn't be too difficult for clients to connect themselves to more than one branch.)
This way searches could work more intelligently instead of by brute force, by only looking down the most relevant branches where the searches are most likely to succeed.
===
Advogato's showing you to be an apprentice. Seems several people went over and certified you.
Go and knock yourself out!
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Scrooge didn't give a shit about being considered a cheap asshole. He had his money, the only thing he cared for.
I don't want to speculate with dark humor, but I woke up with a bad dream from an afternoon nap:
Napster was a deliberate plant by the RIAA and MPAA and carefully managed like a stage puppet to set a legal precident.
Now that would be scary.
morally, the first; musically, the second.
-- the most controversial site on the Web
- mp3.com plans to email spam on behalf of RIAA labels' acts
- the artist's agreement I've been talking about so much is being CHANGED.
I've studied the changes in the agreement and can no longer stand by my claims that mp3.com is such a great deal, because of one CRUCIAL change in the agreement: rather than the contract only being renegotiable with _signed_ consent of the artist (email receipt counts), under the new rules almost everything is the same- except that the contract is, like a major label contract, renegotiable by mp3.com at any time with merely an announcement on the artist board five days before any given change. The sole recourse is to terminate- implying that the changes take effect.This is jarringly different from the original contract, in which you had to _sign_ _off_ on changes before they took effect. I, personally, am refusing to accept this new contract, and will see how this plays out. I am very likely going to have to leave mp3.com and scout around to see if there is one single music hosting site anywhere on the net that doesn't attempt abusive practices. I'm not certain I'll find one- and if I try to put up my own stuff, the mp3 patent holders get to come and hit me for a $30,000 fee.
I am not joyous today.
Again, I must entirely recant what I've said about mp3.com- that was the old contract, which I'm keeping a copy of. The new one is _very_ different and the difference is wide open to abuse, something that I cannot condone at all. Would you sign an employment contract with a company that said they got to change anything in the contract without needing to get your okay, and didn't even need to _tell_ you, merely do the proverbial 'locked disused filing cabinet with a sign on front saying 'Beware of the Leopard'? If that seems exaggerated, I might add that the only required announcement for contract changes under the new agreement is an announcement in the mp3.com artist's area bulletin board- which is usually completely unavailable due to the bulletin board's deep unreliability.
I'd _really_ like to see a bit of Slashdot networking to the effect of setting up some way for musicians to host their music (even for totally free- at this point I'll give up payment, if I must, to get a fair contract) in some unencumbered format like Vorbis. And does ANYBODY have the Mac vorbis codec authored at MacHack, seeing as right now I can't put my _own_ mp3s on my own website without being hunted down by the patent holders and billed $30,000 for use of the format commercially?
I am _not_ joyous today.
They've misused the term so much, it's even in the doctionary now. I don't care. I wander if they call black people niggers.
You missed the fact that Napster is firmly grounded in the 1992 Audio Home Recording Act.
In 1992, in exchange for mandatory "royalty" payments on all digital audio recorders and digital audio recording media, Congress created a law that defined all non-commercial copying of audio recordings as non-infringing.
That's right, every time you buy a blank audio CDR, a small percentage of your money is collected by the government and distributed to the music industry. In exchange, congress legalized all non-commercial copying of music, using any method, on any media, to settle the issue once and for all. One of the main purposes of the AHRA was to end the practice of the recording industry running to Congress for new protection every time a new technology was invented.
Just in case you feel guilty about artists not being paid, here is a table that shows how your money is divided up by the recording industry every time you buy a blank audio CD or an audio CD recorder:
(1.75%) of the royalties are paid to the American Federation of Musicians, to be paid to "non-featured" musicians (studio musicians)
(0.92%) of the royalties are paid to the American Federation of Television and Radio Artists, to be paid to "non-featured" vocalists (backup vocalists)
(25.60%) of the royalties are paid to "featured recording artists", including such bands as Metallica.
(38.40%) of the royalties are paid to "copyright owners" (the RIAA companies)
(16.67%) of the royalties are paid to "music publishers"
(16.67%) of the royalties are paid to music writers, including such bands as Metallica who write their own songs.
Here is one of my previous postings regarding the AHRA which goes into more detail on what the AHRA is and why Napster is both completely legal and completely within the spirit of the law as well as the letter.
I am certainly going to be looking at other hosting services. I'd like to hook up with one that's got the right motivations- sort of the mp3 or vorbis equivalent of sourceforge. It obviously looks like no free mp3 hosting service can survive if they will be subject to royalties, and again I'm not ready to assume these services won't be held responsible for paying royalties at the minimum one cent per download. If the service has no income and makes no money in any way, how does it operate a server?
Yes, mp3.com is now operating like any other record label (I can't take the remaining decent bits of the contract seriously when they're so volatile). It didn't used to be- it used to offer a very reasonable, businesslike deal to artists. We need something like that out there.
or rather let the artists and the open source community work together to create a an electronic marketplace that does not involve the riaa.
MP3.com fits every aspect of your comment except the "open source" aspect, which cannot be filled legally until one of these happens:
<O
( \
XGNOME vs. KDE: the game!
Will I retire or break 10K?
The RIAA has no case, because they hold no relevant copyrights.
But the labels have given the RIAA what is called "power of attorney" over the copyrights.
<O
( \
XGNOME vs. KDE: the game!
Will I retire or break 10K?
English copyright was perpetual, and only publishers were granted copyright -- not authors.
American copyright is perpetual under a loophole in the Constitution: copyright is supposed to last "for limited times" but nothing in the Constitution takes away Congress's right to extend the terms of those rights retroactively whenever they are about to expire <cough>Sonny Bono Act</cough>. And a large fraction of contracts require the authors to sign over all rights to the publisher (often an RIAA/MPAA/etc. member).
<O
( \
XGNOME vs. KDE: the game!
Will I retire or break 10K?
American copyright is perpetual under a loophole in the Constitution: copyright is supposed to last "for limited times" but nothing in the Constitution takes away Congress's right to extend the terms of those rights retroactively whenever they are about to expire Sonny Bono Act.
I completely agree. That's an entirely different battle which is being faught right now.
And a large fraction of contracts require the authors to sign over all rights to the publisher (often an RIAA/MPAA/etc. member).
That's a problem arising from the fact that the record labels have, up until now, had a stranglehold on the entire music distribution chain. If you wanted to be published, the price was the same no matter which label you went to -- you had to give them your copyrights. Newer internet labels like mp3.com don't demand your copyrights in exchange for being published -- just a percent of the profits. Napster, of course, doesn't demand anything in exchange for publishing your work, should you choose to publish your work that way.
In my experience, a 56K-class dialup connection is not very full-duplex. When I'm sending large amounts of data (web site updates through FTP or my band's music through Napster), I have terrible pings and transfer rates to web sites. This half-duplicity makes it more efficient for dialup users to freeload. This phenomenon also affects any asymmetric connection (for example, DSL upload speeds can be as low as one-fifth of download speeds).
<O
( \
XGNOME vs. KDE: the game!
Will I retire or break 10K?
The changes in their artists' agreement are still problematic, and still a dealbreaker for me, personally. What is so wrong with wanting to be asked to sign off on major changes to a contract over MY WORK? _Why_ do they need to sneak in this crap about keeping your stuff in perpetuity, and being allowed to change anything they want in the agreement on five days notice with your only recourse to terminate (but then they get to keep anything associated with a 'Secure Account' in perpetuity anyway!)? We already _have_ a major label record industry, we don't need another :P oh well, time to re-evaluate all my plans yet again. Sometimes I really get this gut level sense that Alvin Toffler was right...
sulli
sulli
RTFJ.