From: Jaroslav Kysela Date: Mon, 23 Jan 2023 09:56:28 +0000 (+0100) Subject: descrambler: cccam - simplify cccam_handle_keys() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8b6d5eba112a9ace28db4ebee12c4b6154327c7;p=thirdparty%2Ftvheadend.git descrambler: cccam - simplify cccam_handle_keys() Signed-off-by: Jaroslav Kysela --- diff --git a/src/descrambler/cccam.c b/src/descrambler/cccam.c index 2c2219dce..29ab58980 100644 --- a/src/descrambler/cccam.c +++ b/src/descrambler/cccam.c @@ -367,17 +367,21 @@ cccam_handle_keys(cccam_t *cccam, cc_service_t *ct, cc_ecm_section_t *es, { uint8_t *dcw_even, *dcw_odd, _dcw[16]; - if (!cccam->cccam_extended) { - cccam_decrypt_cw(cccam->cccam_nodeid, es->es_card_id, buf + 4); - memcpy(_dcw, buf + 4, 16); - cccam_decrypt(&cccam->recvblock, buf + 4, len - 4); + if (buf[1] == MSG_ECM_REQUEST) { + if (!cccam->cccam_extended) { + cccam_decrypt_cw(cccam->cccam_nodeid, es->es_card_id, buf + 4); + memcpy(_dcw, buf + 4, 16); + cccam_decrypt(&cccam->recvblock, buf + 4, len - 4); + } else { + memcpy(_dcw, buf + 4, 16); + } + dcw_even = _dcw; + dcw_odd = _dcw + 8; } else { - memcpy(_dcw, buf + 4, 16); + dcw_even = NULL; + dcw_odd = NULL; } - dcw_even = buf[1] == MSG_ECM_REQUEST ? _dcw : NULL; - dcw_odd = buf[1] == MSG_ECM_REQUEST ? _dcw + 8 : NULL; - cc_ecm_reply(ct, es, DESCRAMBLER_CSA_CBC, dcw_even, dcw_odd, seq); }