blob: de8da24bddf86d6aebfb4775f8169fea5a976a53 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
/*****************************************************************************
* css.h: Structures for DVD authentication and unscrambling
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
*
* Author: Stéphane Borel <stef@via.ecp.fr>
*
* based on:
* - css-auth by Derek Fawcus <derek@spider.com>
* - DVD CSS ioctls example program by Andrew T. Veliath <andrewtv@usa.net>
* - DeCSSPlus by Ethan Hawke
* - The Divide and conquer attack by Frank A. Stevenson <frank@funcom.com>
*
* libdvdcss is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* libdvdcss is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with libdvdcss; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
#ifndef DVDCSS_CSS_H
#define DVDCSS_CSS_H
#include <stdint.h>
#include "dvdcss/dvdcss.h"
#define CACHE_FILENAME_LENGTH_STRING "10"
#define DVD_KEY_SIZE 5
typedef uint8_t dvd_key[DVD_KEY_SIZE];
typedef struct dvd_title
{
int i_startlb;
dvd_key p_key;
struct dvd_title *p_next;
} dvd_title;
typedef struct css
{
int i_agid; /* Current Authentication Grant ID. */
dvd_key p_bus_key; /* Current session key. */
dvd_key p_disc_key; /* This DVD disc's key. */
dvd_key p_title_key; /* Current title key. */
} css;
/*****************************************************************************
* Prototypes in css.c
*****************************************************************************/
int dvdcss_test ( dvdcss_t );
int dvdcss_title ( dvdcss_t, int );
int dvdcss_disckey ( dvdcss_t );
int dvdcss_unscramble ( uint8_t *, uint8_t * );
#endif /* DVDCSS_CSS_H */
|