feat: ELF versions via P1=20 retry and per-AID app queries (v3.7.0)
No live card accepts a tag list for the ELF queries (tags/noea/lean all answer 6A88 on P1=10 - the log of 2026-09-30 11:11), so the version-carrying CE tag was unreachable there; the ELF listing itself (notags + chained GET RESPONSE) works and carries AID + life cycle + modules only. Two fallbacks: - when the ELF rows have no version and the details pass never got a tag-list form, the ladder is walked once more with P1=20 (a card's P1=10 implementation can be stricter) and merged by AID; - any version still missing is fetched per applet AID: the AID search qualifier (4F <len> <AID>, GP 11.4.2.3 Table 11-35) plus the apps tag list selects a single applet entry, whose CE is its package's version (the applet <-> package mapping is the AID prefix; at most 6 queries). Also: - the app and ISD rows show their parsed CE version (the expanded apps listing carries it); - an unfulfilled 6310 (the next-occurrence page refused, e.g. 6A86) is reported as '(first page only)' instead of looking complete; - the page loop only continues when the chained GET RESPONSE was accepted - a refused retry no longer costs an extra P2=03 packet. sw cache simple-v332; tests: 557 Python / 716 Node.
This commit is contained in:
@@ -31,7 +31,7 @@ from osmocom.tlv import BER_TLV_IE
|
||||
from osmocom.utils import rpad
|
||||
|
||||
|
||||
VERSION = '3.6.58'
|
||||
VERSION = '3.7.0'
|
||||
|
||||
MAX_ENVELOPE_SEGMENTS = 5 # max SMS segments for outgoing C-APDU in ENVELOPE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user