Fragen zu multi channel decryption (MCD) und CA_PMT query

  • Meine Versuche mit einem Neotion Modul MCD/MTD zu nutzen sind bisher leider erfolglos.


    Das Modul sollte Dualentschlüsselung beherschen, allerdings antwortet es nicht auf die CA_PMT query Anfragen.

    Der Grund dafür liegt vielleicht auch daran, das VDR bei mir gleich nach dem Start die query-requests an die CAM sendet, allerdings noch bevor ein Signal anliegt. Das bedeuted es sind leere Anfragen ohne Programmnummer und Pids. Danach wird in ci.c repliesToQuery auf false gesetzt.


    Nun meine Frage: ist das mit den leeren CA_PMT queries normal und wenn ja welche CAM antwortet dann (und vor allem wie) darauf - ich glaube MCD/MTD funktioniert ja mit den Alphacrypt Modulen, aber hat jemand auch mit einem "normalen" Modul erfolg?


    Hier ein kurzes Log in dem zu sehen ist, wie die 6 CA_PMT query Anfragen vor dem eigentlichen Tunen erfolgen. (mit vdr-2.3.8, ddci2 und meinem Wintv USB-CI Adapter):

    Vielleicht hat jemand eine Idee.


    Helmut


  • VDR schickt das erste CPCI_QUERY immer ganz am Anfang an das CAM, unanhängig davon, ob bereits "ein Signal anliegt". Es werden dabei auch gar keine Werte für Source, Transponder, ProgramNumber oder CaSystemIds übergeben. Es ist auch egal, wie das CAM antwortet, es kommt nur darauf an *dass* es antwortet (es wird wegen der fehlenden ProgramNumber sicherlich negativ antworten).


    Du kannst versuchsweise mal in ci.c im Konstruktor von cCiConditionalAccessSupport die Zeile 1100 nach


    repliesToQuery = true;


    ändern und schauen, ob das CAM später doch noch auf QUERY antwortet.


    Klaus

  • Verstehe, die "leeren" queries sind also ok .

    ich war mir mit meiner speziellen Hard- und Softwarekonstellation nicht sicher ob das nicht ein selbst gemachtes Problem ist.


    Zu "repliesToQuery = true":

    Das habe ich schon in diesem uralten Thread https://www.linuxtv.org/pipermail/vdr/2008-April/016525.html gelesen, hat aber in einem ersten Versuch nichts geholfen - kein Reply.

    ich werde mich aber damit noch einmal genauer beschäftigen da ich nicht alle darin angeführten Ergänzungen ausprobiert habe.


    Wie sieht eigentlich das Reply des CAM auf ein "leeres" query aus?

    Und kann es sein, das nur die Alphacrypt Module darauf antworten? Mit der Suchfunktion hier im Forum finde ich leider nichts Erhellendes zur Verwendung von MCD/MTD.


    Helmut

  • Sorry, das Setzen von "repliesToQuery = true" alleine reicht nicht.

    Mach doch mal zusätzlich in der Funktion cCamSlot::CanDecrypt() gleich als Erstes ein "return true;" rein und schau mal, ob dein CAM damit die versprochenen zwei Kanäle gleichzeitig entschlüsseln kann.

    Das ist allerdings nur ein Hack zum Testen. Für den Normalbetrieb ist das nicht geeignet. Ohne dass das CAM auf ein QUERY reagiert kann VDR kein vernünftiges MCD machen...


    Klaus

  • Hab es Jetzt kurz getestet - mit den beiden Ergänzungen kann ich mit dem NEOTION Modul zwei Sender gleichzeitig entschlüsseln und aufnehmen. Es ist auch möglich auf einen dritten Sender umzuschalten, der bleibt dann allerdings schwarz - also nur Dualentschlüsselung des CAM.

    Durch das sofortige "return true" in cCamSlot::CanDecrypt() weiss ich noch nicht, ob und wann das Modul auf ein query reagiert, das werde ich dann morgen (eigentlich doch schon heute) versuchen herauszufinden.


    Helmut

  • Eine interessante Sache.

    Es sieht so aus als würde alleine das CA_PMT query in cCamSlot::CanDecrypt() die Mehrfachentschlüsselung des CAM verhindern.

    Ich habe das "return true" in cCamSlot::CanDecrypt() wieder entfernt und die logs auf syslog umgeleitet. Bei einer verschlüsselten Aufnahme und umschalten auf einen zweiten Sender kommt ein Reply - allerdings mit 0xF1 (can decrypt, but no subscription):

    Wenn ich in cCamSlot::CanDecrypt() bei CaPmt.SetListManagment() CPLM_ONLY statt CPLM_ADD angebe, bekomme ich beim Umschalten ein Reply mit 0x81 (can-decrypt), allerdings werden dabei die PIDs des ersten Senders gelöscht (die CAIDs sind die gleichen) und die Entschlüsselung der Aufnahme wird beendet:


    Das bedeutet, das bei diesem CAM die Mehrfachentschlüsselung nur funktioniert wenn KEINE queries gesendet werden und cCamSlot::CanDecrypt() keine Prüfung vornimmt sondern sofort "true" liefert.


    Übrigens kann das SimpliTV Modul (für DVB-T2 in AT) auf diese Weise auch zwei Programme gleichzeitig entschlüsseln.


    Helmut
     


  • Die kochen da anscheinend mal wieder ihr eigenes Süppchen :-(.

    Wenn ein CAM nicht korrekt auf Queries antwortet, dann sehe ich nicht, wie VDR sowas anständig unterstützen soll.


    Klaus

  • Ja, das sich die CAMs verschieden verhalten, habe ich schon bei Spielereien mit TS-Paketen bemerkt. Wenn die Daten Unsinn sind, setzt eine CAM von sich aus alle 188 bytes das Sync-Byte (0x47), eine andere nur beim 1.Packet usw.


    Das der VDR nur auf korrekte Queries reagiert ist sicher der richtige Weg da sich die CAMs beim Versuch mehr Programme als die unterstützte Anzahl zu entschlüsseln auch unterschiedlich verhalten. Das SimpliTV CAM z.B. öffnet beim 3. Progarmm das CAM-Menü mit Hinweis und Telefonnummer zur Regstrierung und stellt die Entschlüsselung der beiden laufenden Programme ein (nach abschalten der Aufnahmen und Senderwechsel gehts natürlich wieder). Und das ist ja nicht wirklich bauchbar.


    Helmut

  • I think, according to clause 9.5.1, the feature is not intended to determine the possibility of multiple decoding of by the CAM module.

    Only to determine the possibility of decoding in principle by this module.

    And the choice of the module in the case of several modules in the system.

    Perhaps the possibility of multiple decoding should be determined by the number of CA sessions. (according flowcharts A.2)

  • Hi,


    this is not direct releated to the issue but may help to debug

    https://jokersys.com/2018/03/0…rface-ci-descrambling-tv/

    I find the idea nice to have a wireshark interface for debug "Option –cam-pcap cam.pcap"

    http://www.kaiser.cx/pcap-dvbci.html

    CU

    9000h

    Es ist eagl in wlehcer Reiehnfogle die Bchustebaen in Woeretrn vokrmomen. Huapstache der estre und leztte Bchustbae sitmmen.

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von 9000H ()

  • Hi and thank you both for your input.


    this is not direct releated to the issue but may help to debug
    https://jokersys.com/2018/03/0…rface-ci-descrambling-tv/

    Not directly this page, but the source code here https://github.com/aospan/libj…aster/src/joker_en50221.c

    and the function joker_en50221_sync_cam(struct joker_t * joker) gave me an idea on how to use CA_PMT(query) correctly.


    The point is that a query (usualy) can only be applied to a program that is already in the list of the CAM. A new program must therefore first be added with CA_PMT(add), and after that it can be queried whether the CAM can also decrypt it.


    A quick test in cCamSlot :: CanDecrypt() immediately gave me a reply with 0x81 for the PIDs, before this patch i got no reply at all. But I have to test it more closely.


    That the AlphaCrypt Cam reacts differently, is in my opinion only because of the special firmware.


    I think, according to clause 9.5.1, the feature is not intended to determine the possibility of multiple decoding of by the CAM module.

    You are right, but indirectly, you can tell if a CAM responds to more than one program with a positive reply.


    Helmut


    Edit:

    I'm afraid my approach is not the solution. A CA_PMT (query) with CALM_ONLY like in joker_en50221_sync_cam() also deletes the previously added programs (just like I already noticed in post # 7).

  • Um die CA_PMT Sache wirklich zu verstehen, habe ich heute meine 3 CAMs mit verschiedenen Queries abgefragt und folgendes beobachtet:

    Die beiden CAMS vom SMIT antworten überhaupt nicht.

    Die NEOTION CAM antwortet bei CPLM_ONLY Queries positiv mit "possible", bei CPLM_ADD nur beim ersten Query positiv, beim zweiten ADD gar nicht und ab dem dritten ADD negativ mit "no entitlement". Der Schönheitsfehler bei "possible" ist, das es auch ohne eingelegter Smartcard oder bei eigentlich gar nicht unterstützer CAIDs gemeldet wird und daher auch falsch sein kann.


    Ich habe leider keine Lösung für dieses Query Problem, da aber alle 3 CAMs definitv zumindens 2 Programme gleichzeitig entschlüsseln können werde ich vorläufig den Hack von Klaus aus dem 2. Post beibehalten.


    Helmut