Show T=15 as PPS capability, not a transport protocol

T=15 in the ATR is a Protocol-and-Parameter-Selection capability,
not a data protocol like T=0/T=1. Previously 'Protocols: T=0, T=15'
was misleading.

- _decode_atr: exclude T=15 from protocols, set pps=True instead
- TCK presence: only-t0 rule now also requires no PPS (T=15 implies TCK)
- PWA ATR detail: 'Protocol: T=0' + 'PPS: supported' rows
- +1 test with the real UICC ATR (3B 9F 95 80 1F C7 ...)
- Bump 1.22.2, SW cache v33->v34
This commit is contained in:
catarrh committed 2026-09-05 23:20:16 +03:00
1 parent 6376fb1591
commit 6bdbbea209
7 files changed
+30 -8

No files matched your search

+5 -2
View File
@@ -1450,7 +1450,10 @@ function atrPpsRows(decoded) {
rows.push(['Convention', decoded.convention || 'unknown']);
if (decoded.ts) rows.push(['TS', '0x' + decoded.ts]);
if (decoded.t0) rows.push(['T0', '0x' + decoded.t0 + ' — ' + decoded.historical_len + ' historical bytes']);
if (decoded.protocols) rows.push(['Protocols', decoded.protocols.join(', ')]);
if (decoded.protocols && decoded.protocols.length) {
rows.push([decoded.protocols.length > 1 ? 'Protocols' : 'Protocol', decoded.protocols.join(', ')]);
}
if (decoded.pps) rows.push(['PPS', 'supported']);
if (decoded.interface) {
for (const ifc of decoded.interface) {
rows.push([ifc.name, ifaceValue(ifc)]);
@@ -2511,7 +2514,7 @@ function onFilterChange() {
}
// ──────────────────── Versioning ────────────────────
const PWA_VERSION = '1.22.1';
const PWA_VERSION = '1.22.2';
const MIN_SERVER_VERSION = '1.0.0';
function parseVersion(v) {