scp81: BER-encode the Command Scripting template lengths (v2.1.11)

The C-APDU TLV length was written as a raw byte: a 245-byte LOAD command
produced 'AE 80 22 F5 ...', which BER reads as a long-form marker, so the
card mis-parsed every script command over 127 bytes. Small commands worked,
which made a RAM install look alive: the card answered the LOAD steps with a
degenerate 'AF 80' body (no R-APDU), and the final INSTALL [for install]
failed with 6A88 because the package never loaded.

Both the indefinite ('22' TLV) and definite ('AA' outer) lengths are now
BER-encoded (same rule as the BIP channel data TLV fix). Tests: 245-byte
LOAD body, short form, definite variant (200 python, 346 frontend);
findings doc updated; service worker v148.
This commit is contained in:
2026-09-16 07:45:14 +03:00
parent f411f12c56
commit 92f646df08
6 changed files with 57 additions and 7 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
const CACHE = 'otaman-v147';
const CACHE = 'otaman-v148';
const URLS = [
'index.html',
'help.html',