Crocy . | 21 Apr 15:10
Picon

[libdvdcss-devel] Translation french non-technical description of libdvdcss

Hello,

Since I had some time and I both understand English and French, I did an effort to translate the french non-technical description of libdvdcss to English. You can find the text at the bottom of this mail and, if your spambox allows, in attachment. Please keep in mind that neither English nor French is my mothertongue.
I hope you can use it.

Non-technical description of libdvdcss (v2.1)



Libdvdcss is a functions library a program can use to explore the content of a DVD.



1/ The DVD "zones"


All the commercial DVD's and DVD players include "zone information". Due to this information DVD's and DVD players are only useable in certain countries because the zone information from the DVD player has to correspond with the zone information from the DVD.



2/ The CSS


The CSS (Content Scrambling System) protects the large majority of the commercial DVD's. Software developers for DVD player buy at the DVD CCA (DVD Copy Control Association) keys to decrypt the CSS. At the same time they become the user instructions of the CSS wich are kept secret.

Using his key, and while reading the DVD, the software communicates with the DVD player to get the decryption information.



/3 Copying the DVD


This encryptions don't protect the DVD from copying. It's possible making a physical copy working perfectly the same (often called bit-to-bit) when using the right equipment.

And because the medium has to be decrypted by the software from the DVD player to show the content on the screen, this decrypted content is available during the lecture regardless the used encryption.



4/ The weaknesses of CSS


CSS had been the object of academic studies wich have discovered how this jamming algorithm works, using retro-analysis. Later, these studies have shown that the used CSS key are cryptographically very weak wich has lead to more efficient decryption algorithms and the discovery of the keys. It's possible the obtain an exhaustive list on your home computer just in a few minutes.



5/ How libdvdcss works


This means the list of CSS keys is perfectly known and a sample of these is distributed with libdvdcss. Libdvdcss has the same behavior as a DVD player software and uses a key of this sample. If all the keys from the sample fail, libdvdcss calculates the rest of the keys and tries them.


It is possible that all this fails, especially when DVD and DVD player are not in the same zone. As last remedy, libdvdcss overrides the complete encryption and decrypts the scrambled stream using the cryptographic weakness of CSS.


Regards,


Christopher
Attachment (libdvdcss_en.odt): application/vnd.oasis.opendocument.text, 13 KiB
_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel
Subversion daemon | 12 Mar 00:09
Favicon

[libdvdcss-devel] libdvdcss: svn commit r253 (jb)

r253 | jb | 2012-03-12 00:09:11 +0100 (Mon, 12 Mar 2012) | 2 lines
Changed paths:
   A /tags/1.2.12 (from /trunk:252)

Release of libdvdcss 1.2.12

_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel

Subversion daemon | 11 Mar 14:35
Favicon

[libdvdcss-devel] libdvdcss: svn commit r252 (jb)

r252 | jb | 2012-03-11 14:35:44 +0100 (Sun, 11 Mar 2012) | 3 lines
Changed paths:
   M /trunk/ChangeLog

Update ChangeLog

_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel

Subversion daemon | 11 Mar 14:33
Favicon

[libdvdcss-devel] libdvdcss: svn commit r251 (jb)

r251 | jb | 2012-03-11 14:33:49 +0100 (Sun, 11 Mar 2012) | 3 lines
Changed paths:
   M /trunk/NEWS
   M /trunk/configure.ac
   M /trunk/doc/doxygen.cfg.in

Prepare 1.2.12

_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel

Subversion daemon | 11 Mar 13:37
Favicon

[libdvdcss-devel] libdvdcss: svn commit r250 (jb)

r250 | jb | 2012-03-11 13:37:40 +0100 (Sun, 11 Mar 2012) | 3 lines
Changed paths:
   M /trunk/AUTHORS

Update Authors file

_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel

Picon
Favicon

[libdvdcss-devel] [HELP] Problems with Transformers trilogy on DVD


  Hello

  I'm not developer and I have not found how to report a bug in libdvdcss.

  Recently purchased the Transformers trilogy on DVD but I can not see: played 
a part in the second and the third nothing.

Drive: HL-DT-ST - DVDRRW GSA-H30L
Distro: Ubuntu Presice (2012-03-08)
libdvdcss2: 1.2.11-0.0medibuntu1 (I'm compiled a deb from current svn repo)
libdvdnav4: 4.2.0-1
libdvdread4: 4.2.0-1ubuntu3
VLC media player 2.0.0 Twoflower (revision 2.0.0-0-g421a4fc)

-------
Transformers_1

# lsdvd
libdvdread: Using libdvdcss version 1.2.11 for DVD access
Disc Title: TRANSFORMERS_CSPAN
Title: 01, Length: 02:17:37.330 Chapters: 23, Cells: 34, Audio streams: 03, 
Subpictures: 05

Title: 02, Length: 00:00:00.090 Chapters: 01, Cells: 01, Audio streams: 00, 
Subpictures: 00

Title: 03, Length: 00:00:00.090 Chapters: 01, Cells: 01, Audio streams: 03, 
Subpictures: 08

Longest track: 01

-------
Transformers_2 Revenge of the fallen

# lsdvd 
libdvdread: Using libdvdcss version 1.2.11 for DVD access
libdvdread: Invalid IFO for title 13 (VTS_13_0.BU).
Can't open ifo 13!

# vlc dvd://
VLC media player 2.0.0 Twoflower (revision 2.0.0-0-g421a4fc)
[0x1ec1108] main libvlc: Running vlc with the default interface. Use 'cvlc' to 
use vlc without interface.
libdvdnav: Using dvdnav version 4.2.0
libdvdread: Using libdvdcss version 1.2.11 for DVD access
libdvdnav: DVD Title: TRANSFORMERS2_D1_SP
libdvdnav: DVD Serial Number: 3B4594D0
libdvdnav: DVD Title (Alternative): TRANSFORMERS2_D1_SP
libdvdnav: Unable to find map file '/home/toni/.dvdnav/TRANSFORMERS2_D1_SP.map'
libdvdnav: DVD disk reports itself with Region mask 0x00fd0000. Regions: 2

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000f13
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000012d0
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x00001353
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_05_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_05_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_06_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_06_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_07_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_07_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_08_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_08_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_09_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_09_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_10_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_10_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_11_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_11_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_12_0.VOB at 0x000017fe
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_12_1.VOB at 0x0001d079
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_13_0.VOB at 0x0034f4b6
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_13_1.VOB at 0x00351c10
libdvdread: Elapsed time 0
libdvdread: Found 13 VTS's
libdvdread: Elapsed time 0
[0x7f59f4000b78] main input error: ES_OUT_RESET_PCR called
[0x7f59f4000b78] main input error: ES_OUT_RESET_PCR called
libva: VA-API version 0.32.0
Xlib:  extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/nvidia_drv_video.so
libva: va_openDriver() returns 0
[0x7f59e80acbf8] avcodec decoder: Using VA API version 0.32 for hardware 
decoding.
[0x7f59f4000b78] main input error: ES_OUT_SET_(GROUP_)PCR  is called too late 
(pts_delay increased to 302 ms)
[0x7f59f4000b78] main input error: ES_OUT_RESET_PCR called

-------
Transformers_3: Dark of the moon

# vlc dvd://
VLC media player 2.0.0 Twoflower (revision 2.0.0-0-g421a4fc)
[0x1846108] main libvlc: Running vlc with the default interface. Use 'cvlc' to 
use vlc without interface.
libdvdnav: Using dvdnav version 4.2.0
libdvdread: Using libdvdcss version 1.2.11 for DVD access
libdvdnav: DVD Title: TRANSFORMERS_3
libdvdnav: DVD Serial Number: 3F2D9316
libdvdnav: DVD Title (Alternative): TRANSFORMERS_3
libdvdnav: Unable to find map file '/home/toni/.dvdnav/TRANSFORMERS_3.map'
libdvdnav: DVD disk reports itself with Region mask 0x00fd0000. Regions: 2

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x0000020d
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x000005a1
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x000005bf
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x0000060e
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_1.VOB at 0x0000062c
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_05_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_05_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_06_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_06_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_07_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_07_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_08_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_08_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_09_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_09_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_10_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_10_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_11_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_11_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_12_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_12_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_13_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_13_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_14_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_14_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_15_0.VOB at 0x0000099b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_15_1.VOB at 0x0000c356
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_16_0.VOB at 0x0034ec00
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_16_1.VOB at 0x0035135a
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_17_1.VOB at 0x00351375
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_18_1.VOB at 0x00351391
libdvdread: Elapsed time 0
libdvdread: Found 18 VTS's
libdvdread: Elapsed time 0

*** libdvdread: CHECK_VALUE failed in 
/build/buildd/libdvdread-4.2.0/src/ifo_read.c:1204 ***
*** for data[i] + sizeof(ptt_info_t) <= vts_ptt_srpt->last_byte + 1 + 4 ***

... file size: 24 MiB

  Regards
  Toni
_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel

Subversion daemon | 18 Feb 17:22
Favicon

[libdvdcss-devel] libdvdcss: svn commit r249 (jb)

r249 | jb | 2012-02-18 17:22:03 +0100 (Sat, 18 Feb 2012) | 4 lines
Changed paths:
   M /trunk/src/css.c

If unsure, assume the drive is of RPC-I type

This can happen when patched drives do not answer to ioctl_ReportRPC correctly

_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel

David Woodhouse | 18 Feb 17:10
Favicon

[libdvdcss-devel] libdvdcss 1.2.11 regression

As described by Dan Haim in
http://mailman.videolan.org/pipermail/libdvdcss-devel/2012-January/000613.html
libdvdcss 1.2.11 is failing on certain drives where 1.2.10 used to work correctly.

This patch seems to fix it; is there a reason not to apply it?

I'd like to get this fixed in the Fedora package but the packager is
understandably reticent about doing so without upstream approval of the
patch.

diff --git a/src/css.c b/src/css.c
index 4d86016..5cc4b34 100644
--- a/src/css.c
+++ b/src/css.c
@@ -138,8 +138,10 @@ int _dvdcss_test( dvdcss_t dvdcss )

     if( i_ret < 0 )
     {
-        print_error( dvdcss, "css error: could not get RPC status" );
-        return -2;
+        print_debug( dvdcss, "css error: could not get RPC status; assuming RPC-1 drive" );
+        i_rpc = 0;
+        i_type = 0;
+        i_mask = 0;
     }

     switch( i_rpc )

--

-- 
dwmw2

_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel

Fabian Greffrath | 25 Jan 11:56
Favicon

[libdvdcss-devel] libdvdcss.so does not distinguish internal from exposed API

Hi again,

it seems that currently libdvdcss.so contains many internal symbols 
that are not marked as such and thus confuse utilities like 
dpkg-gensymbols [1].

It would be nice if libdvdcss could either use a version-script like 
the following

LIBDVDCSS_2 {
         global: dvdcss*;
         local:  *;
};

or otherwise declare the _dvdcss_*, _print_* and ioctl_* symbols as 
internal/local.

AFAICT, the version-script should get saved as src/libavcodec.ver and 
then passed to the linker via 
"-Wl,--version-script,src/libavcodec.ver". I have however, not yet 
tested this approach myself.

Best Regards,
Fabian Greffrath

[1] http://manpages.debian.net/cgi-bin/man.cgi?query=dpkg-gensymbols
_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel

Fabian Greffrath | 25 Jan 10:41
Favicon

[libdvdcss-devel] Faulty include path in libdvdcss.pc

Hi all,

the pkg-config file for libdvdcss, which gets installed into e.g. 
/usr/lib/pkgconfig/libdvdcss.pc, contains the following line:

   Cflags: -I{includedir} -I${includedir}/libdvdcss

whereas the dvdcss.h header file gets actually installed into 
/usr/include/dvdcss/ (i.e. dvdcss instead of libdvdcss).

This is due to the src/libdvdcss.pc.in file including the line

   Cflags: -I{includedir} -I${includedir}/@PACKAGE@

and @PACKAGE@ being set to "libdvdcss" in configure due to

   AM_INIT_AUTOMAKE(libdvdcss, 1.2.11)

in configure.ac.

Apparently this has never caused any real breakage anywhere but would 
be nice to have fixed anyway.

Best Regards,
Fabian Greffrath
_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel

danhaim | 22 Jan 13:31
Favicon

[libdvdcss-devel] Bug concerning RPC-1-patched drives

Hi,
I think I found a bug in libdvdcss where drives flashed with
RPC-1-patched firmware are concerned. Many times these drives will not
report themselves as RPC-1 but would rather not recognize the relevant
ioctls at all (like actual old RPC-1 drives' behavior). This causes
ioctl_ReportRPC to fail and _dvdcss_test, in turn, to report a -2 return
code, which prevents the disc from being authenticated.

This leads to two problems -
1) libdvdcss skips the key method and goes straight to brute force
cracking - which takes a significant amount of time and in this case is
unnecessary,
2) My own (RPC-1-patched) DVD drive had an even worse case - It would
not allow encrypted VOB files to be read at all until the disc is
authenticated, which causes the brute force approach to fail and in turn
not allow playback of encrypted DVDs at all.

I believe that the default behavior should be changed such that if
ioctl_ReportRPC fails, we assume the drive is RPC-1 and attempt to
authenticate the disc using the key method anyway. If it succeeds,
great, if not, we fall-back like usual.

The relevant code is in function _dvdcss_test in css.c :

i_ret = ioctl_ReportRPC( dvdcss->i_fd, &i_type, &i_mask, &i_rpc);

if( i_ret < 0 )
{
-        print_error( dvdcss, "css error: could not get RPC status" );
-        return -2;
+        print_debug( dvdcss, "css error: could not get RPC status,
assuming RPC-1 drive" );
+        i_rpc = 0;
+        i_type = 0;
+        i_mask = 0;
}

I tested this and was able to play encrypted DVDs with the modified
libdvdcss library (was completely unable before).

_______________________________________________
libdvdcss-devel mailing list
libdvdcss-devel <at> videolan.org
http://mailman.videolan.org/listinfo/libdvdcss-devel


Gmane