|
@@ -65,9 +65,14 @@ inline void csa_set_odd_cw(csakey_t *csakey, uint8_t *odd_cw) {
|
65
|
65
|
dvbcsa_bs_key_set(odd_cw, key->bs_csakey[1]);
|
66
|
66
|
}
|
67
|
67
|
|
68
|
|
-inline void csa_decrypt_single_packet(csakey_t *csakey, uint8_t *payload_start, unsigned int payload_len, unsigned int key_idx) {
|
|
68
|
+inline void csa_decrypt_single_packet(csakey_t *csakey, uint8_t *ts_packet) {
|
69
|
69
|
struct csakey *key = (struct csakey *)csakey;
|
70
|
|
- dvbcsa_decrypt(key->s_csakey[key_idx], payload_start, payload_len);
|
|
70
|
+ if (use_dvbcsa) {
|
|
71
|
+ unsigned int key_idx = ts_packet_get_scrambled(ts_packet) - 2;
|
|
72
|
+ unsigned int payload_offset = ts_packet_get_payload_offset(ts_packet);
|
|
73
|
+ ts_packet_set_not_scrambled(ts_packet);
|
|
74
|
+ dvbcsa_decrypt(key->s_csakey[key_idx], ts_packet + payload_offset, 188 - payload_offset);
|
|
75
|
+ }
|
71
|
76
|
}
|
72
|
77
|
|
73
|
78
|
inline void csa_decrypt_multiple_even(csakey_t *csakey, struct csa_batch *batch) {
|