scp81: correct GET STATUS pagination and registry P1s (v2.1.16)
- continuation repeats the SAME GET STATUS command with P2.b1 set (the pagination state lives in the card); changing the 4F criterion is a match filter, not a position - P2=03 with the last AID is rejected with 6A80 and P2=02 with it returns that single match (the earlier duplicate) - handle the standard "more data available" warning SW 63 10 (Table 11-38) in addition to the live card's proprietary CA FE - explore script: P1=40 is applications+SDs, P1=20 the ELF registry, P1=10 ELF+modules (Table 11-33) - the ELF-only registry was never queried, which hid the installed package; labels and the results decoder show C4 (ELF AID) and CC (SD AID) too - UICC_SPECS.md: GET STATUS P1/P2 tables made explicit with the pagination rule, plus BER length coding notes for the scripting templates and the TS 102 223 channel data TLV (the two >127-byte traps) 201 python + 346 frontend; service worker v153
This commit is contained in:
+15
-3
@@ -255,9 +255,21 @@ installed/registered entries were invisible (the installed package
|
||||
`AA1902BC225801` was missing from the ELF registry). The correct value is
|
||||
`P2=03` = "**Get next occurrence(s)**".
|
||||
|
||||
**Fix:** `_scp81_continuation` emits `80F2 <P1> 03 <Lc> 4F <len> <lastAID> 00`
|
||||
and the earlier duplicate entry per page is gone (the criterion entry is no
|
||||
longer re-returned).
|
||||
**Fix:** the continuation repeats the *same* GET STATUS command with P2.b1
|
||||
set (`80F2 <P1> 03 <same data> 00`) - the pagination state lives in the card.
|
||||
A changed `4F` criterion is a match filter, not a position: `P2=03` combined
|
||||
with the last AID as criterion is rejected with SW 6A80, and `P2=02` with it
|
||||
returns that single match (the duplicate seen earlier). The card's
|
||||
truncation warning is its proprietary `CA FE`; GP defines `63 10` (Table
|
||||
11-38) and both trigger the continuation.
|
||||
|
||||
**Also fixed (same week):** the explore script's P1 values - per Table 11-33
|
||||
`P1=40` is *applications and supplementary security domains*, `P1=20` the
|
||||
*ELF registry* and `P1=10` *ELF+modules*; the script never queried the
|
||||
ELF-only registry, which is why the installed package `AA1902BC225801` was
|
||||
invisible. Labels/decoder updated; the remote APDU script builder's P1 map
|
||||
(0x02 load / 0x0C install / 0x08 make-selectable / 0x40 reg-update / 0x10
|
||||
extradition) was already correct.
|
||||
|
||||
## Next tests / work
|
||||
|
||||
|
||||
Reference in New Issue
Block a user