Changeset 8441


Ignore:
Timestamp:
02/28/13 15:30:46 (8 years ago)
Author:
gf
Message:

cryptoworks/viaccess: Allow EMMs that are reassembled by the client to work.

ACamd, mgcamd and possibly other clients reassemble and filter EMMs
before sending them to OSCam. When EMM reassembly was moved on the
local reader side in r8377, EMMs were stopped from reaching the card
until they were reassembled.

But if the EMM is already reassembled then no EMM-SH packets are
comming so the reassembly never succeeded.

With this change all EMMs reach the card even if they are not
reassembled. This allows already reassembled EMMs to work and EMM
reassembly to work.

The downside is that there would be some EMM writing errors because
the reader would try to write not assembled EMMs instead of waiting
for reassembly.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/reader-cryptoworks.c

    r8413 r8441  
    738738        case 0x86: // emm-sb
    739739            cs_debug_mask(D_DVBAPI, "[cryptoworks] shared emm (EMM-SB): %s" , cs_hexdump(0, buffer, *len, dumpbuf, sizeof(dumpbuf)));
    740             if (!reader->reassemble_emm_len) return 0;
     740            if (!reader->reassemble_emm_len) return 1;
    741741
    742742            // we keep the first 12 bytes of the 0x84 emm (EMM-SH)
     
    785785                // error in emm assembly
    786786                cs_debug_mask(D_DVBAPI, "[cryptoworks] Error assembling Cryptoworks EMM-S");
    787                 return 0;
    788787            }
    789788            break;
  • trunk/reader-viaccess.c

    r8377 r8441  
    10141014            reader->reassemble_emm_len=*len;
    10151015            //cs_ddump_mask(D_READER, buffer, len, "viaccess global emm:");
    1016             return 0;
     1016            break;
    10171017
    10181018        case 0x8e:
    10191019            // emm-s part 2
    1020             if (!reader->reassemble_emm_len) return 0;
     1020            if (!reader->reassemble_emm_len) return 1;
    10211021
    10221022            //extract nanos from emm-gh and emm-s
Note: See TracChangeset for help on using the changeset viewer.