Browse Source

Add support for more CA systems.

Add support for SECA/Mediaguard, Viaccess, Videoguard/NDS, Nagra
and DRE-Crypt.
Georgi Chorbadzhiyski 13 years ago
parent
commit
d5a33998a3
4 changed files with 21 additions and 10 deletions
  1. 2
    3
      README
  2. 1
    1
      libtsfuncs
  3. 6
    5
      tsdecrypt.1
  4. 12
    1
      tsdecrypt.c

+ 2
- 3
README View File

@@ -1,9 +1,8 @@
1 1
 tsdecrypt
2 2
 =========
3 3
 tsdecrypt reads incoming mpeg transport stream over UDP/RTP and then decrypts it
4
-using libdvbcsa and keys obtained from OSCAM or similar cam server. Currently
5
-supported and tested cryptosystems are Conax, Cryptoworks and Irdeto. tsdecrypt
6
-communicates with camd using camd35 over tcp protocol also known as cs378x.
4
+using libdvbcsa and keys obtained from OSCAM or similar cam server. tsdecrypt
5
+communicates with CAM server using camd35 over tcp protocol also known as cs378x.
7 6
 
8 7
 Installation
9 8
 ============

+ 1
- 1
libtsfuncs

@@ -1 +1 @@
1
-Subproject commit 5627d6d019dcc605862181231bb3841fb5dd4a6b
1
+Subproject commit d9734150a39af5019cb8cef21f3efea914222575

+ 6
- 5
tsdecrypt.1 View File

@@ -6,9 +6,8 @@ tsdecrypt - Decrypt mpegts stream.
6 6
 [\fIoptions\fR]
7 7
 .SH DESCRIPTION
8 8
 tsdecrypt reads incoming mpeg transport stream over UDP/RTP and then decrypts it
9
-using libdvbcsa and keys obtained from OSCAM or similar cam server. Currently
10
-supported and tested crypto systems are Conax, Cryptoworks and Irdeto. tsdecrypt
11
-communicates with camd using camd35 over tcp protocol also known as cs378x.
9
+using libdvbcsa and keys obtained from OSCAM or similar cam server. tsdecrypt
10
+communicates with CAM server using camd35 over tcp protocol also known as cs378x.
12 11
 .SH OPTIONS
13 12
 .TP
14 13
 .SH MAIN OPTIONS
@@ -76,8 +75,10 @@ in PMT like NIT, EIT, TDT tables and unknown pids is removed.
76 75
 .TP
77 76
 \fB\-c\fR, \fB\-\-ca\-system\fR <ca_sys>
78 77
 Process input EMM/ECM from <ca_sys>. Currently tested and working CA systems
79
-are \fBCONAX\fR, \fBCRYPTOWORKS\fR and \fBIRDETO\fR. The default <ca_sys> is
80
-\fBCONAX\fR.
78
+are \fBCONAX\fR, \fBCRYPTOWORKS\fR and \fBIRDETO\fR. Other supported CA
79
+systems that you can choose but are not tested are \fBSECA\fR
80
+(\fBMEDIAGUARD\fR), \fBVIACCESS\fR, \fBVIDEOGUARD\fR (\fBNDS\fR), \fBNAGRA\fR
81
+and \fBDRECRYPT\fR. The default <ca_sys> is \fBCONAX\fR.
81 82
 .TP
82 83
 \fB\-s\fR, \fB\-\-camd\-server\fR <addr[:port]>
83 84
 Set CAMD server ip and port (10.0.1.1:2233). Is not set default port is

+ 12
- 1
tsdecrypt.c View File

@@ -113,7 +113,8 @@ static void show_help(struct ts *ts) {
113 113
 	printf("\n");
114 114
 	printf("CAMD server options:\n");
115 115
 	printf(" -c --ca-system <ca_sys>    | Process input EMM/ECM from <ca_sys>. Default: %s\n", ts_get_CA_sys_txt(ts->req_CA_sys));
116
-	printf("                            | Valid idents are: CONAX, CRYPTOWORKS and IRDETO\n");
116
+	printf("                            | Valid idents are: CONAX, CRYPTOWORKS, IRDETO, SECA (MEDIAGUARD),\n");
117
+	printf("                            |                   VIACCESS, VIDEOGUARD (NDS), NAGRA and DRECRYPT.\n");
117 118
 	printf(" -s --camd-server <addr>    | CAMD server address and port. Example: 1.2.3.4:2233. Default: not set\n");
118 119
 	printf(" -U --camd-user <user>      | CAMD server user. Default: %s\n", ts->camd35.user);
119 120
 	printf(" -P --camd-pass <pass>      | CAMD server password. Default: %s\n", ts->camd35.pass);
@@ -216,6 +217,16 @@ static void parse_options(struct ts *ts, int argc, char **argv) {
216 217
 					ts->req_CA_sys = CA_CONAX;
217 218
 				else if (strcasecmp("CRYPTOWORKS", optarg) == 0)
218 219
 					ts->req_CA_sys = CA_CRYPTOWORKS;
220
+				else if (strcasecmp("SECA", optarg) == 0 || strcasecmp("MEDIAGUARD", optarg) == 0)
221
+					ts->req_CA_sys = CA_SECA;
222
+				else if (strcasecmp("VIACCESS", optarg) == 0)
223
+					ts->req_CA_sys = CA_VIACCESS;
224
+				else if (strcasecmp("VIDEOGUARD", optarg) == 0 || strcasecmp("NDS", optarg) == 0)
225
+					ts->req_CA_sys = CA_VIDEOGUARD;
226
+				else if (strcasecmp("NAGRA", optarg) == 0)
227
+					ts->req_CA_sys = CA_NAGRA;
228
+				else if (strcasecmp("DRE-CRYPT", optarg) == 0 || strcasecmp("DRECRYPT", optarg) == 0)
229
+					ts->req_CA_sys = CA_DRECRYPT;
219 230
 				else
220 231
 					ca_err = 1;
221 232
 				break;

Loading…
Cancel
Save