catarrh
d75604a751
TS 102 226: Expanded Script compliance with Error Action, Script Chaining, Expanded Response
...
Server:
- ExpandedRemoteResponse parser for per-command results (TS 102 226 §5.2.2)
- _decode_por() tries expanded parsing first, fallback to CompactRemoteResp
- response_type indicator: 'expanded'/'compact'/'none' + per-command details
Frontend:
- Error Action TLV (tag 82): structured UI with Action Type, SW pattern builder, recovery command, retry count
- Script Chaining TLV (tag 83): First/Intermediary/Last flags, Script ID with auto-increment hints, Additional Data
- Error Action replaces old 'action indicator' dropdown (breaking change)
- genErrorActionValue()/genScriptChainingValue() encoding functions
- updateSwMaskDisplay() for visual SW pattern builder
Documentation:
- help.html/help-ru.html: Error Action, Script Chaining, Expanded Response sections
Tests:
- TestExpandedRemoteResponse: construct parsing, error handling, chaining context
- 49 Python + 14 Node tests green
2026-08-19 23:20:24 +03:00
catarrh
80a860549a
v1.8.0: proactive log overhaul, Expanded Script rename, proactive view sizing
...
Server:
- Track all TERMINAL RESPONSEs (chain, TP, pySim auto-handler, menu-respond
link to paused entry) with shared _build_tr/_record_tr
- Log entry ids + cmd_num; server-side decode of fetched commands and TRs
(compact PLI port); Result CTLV extracted as tr_result/tr_result_name
- _LoggingApduTracer captures TR SW for pySim auto-handler responses
- _DefaultProactiveHandler answers PLI with editor data (no re-request)
- VERSION 1.8.0
Frontend:
- Expandable proactive log rows (click to expand, state survives re-render)
- Response section: Result name + hex, decoded fields, width-restrained
readonly hex inputs; no SW display
- Rename Expanded Script tab/pill/button/docs; proactive UICC view font
sizing increase; card reader pills text-sm
2026-08-19 18:04:08 +03:00
catarrh
a916e8a255
PLI list: vertical layout, full descriptions, wider inputs, row separators
...
- Drop truncation: full qualifier descriptions (wrap)
- Raw hex input moves under the description, fills row width (flex-1)
- Subtle bottom-border separator between qualifiers
2026-08-16 00:47:06 +03:00
catarrh
62ba09d25e
Probe: require JSON version field to confirm same-origin API
...
SPA-fallback static hosts return 200 HTML for /api/version, which falsely
triggered same-origin mode. Now validate the body parses as JSON with a string
version field before switching to a relative base.
2026-08-15 14:33:00 +03:00
catarrh
966ada21eb
Replace embedded flag with same-origin API probe
...
- Server serves frontend verbatim (drop window.PYSIM_EMBEDDED injection)
- Frontend probes /api/version once; res.ok -> relative base + cleared URL input,
otherwise fall back to http://127.0.0.1:8080
- sw.js: never intercept/cache /api/* (live card data)
2026-08-15 14:10:24 +03:00
catarrh
1971eca381
pyproject: restrict package discovery to pysim_otaman_server
...
Fix setuptools flat-layout error ('Multiple top-level packages discovered'
for frontend/ node_modules/ pysim_otaman_server/) by explicit find.include.
2026-08-14 16:02:44 +03:00
catarrh
d2c292e5b8
Merge pysim-otaman-server into otaman (monorepo, v1.7.0)
...
- Move PWA into frontend/; server package at pysim_otaman_server/
- Server now serves the PWA (same origin -> no CORS/PNA): static file handler
+ --web-dir flag + injects window.PYSIM_EMBEDDED marker into index.html
- Frontend defaults to relative API base when embedded (pysimBase = '')
- Version 1.7.0 aligned: server.py VERSION, pyproject.toml, PWA header
- SW cache bump otaman-v7 -> otaman-v8
- Docs: combined README + docs/api.md endpoint reference; update links
- Fix stale package.json repository URL
2026-08-14 15:48:38 +03:00
catarrh
8e96c5d4a0
Reduce input field vertical padding (py-2.5->py-1.5) in C-APDU, Secured Packet, Response parser and Cards tabs
2026-08-14 14:13:30 +03:00
catarrh
05096a184a
Reduce top bar height (py-4->py-2, mb-6->mb-3); rebuild Tailwind CSS
2026-08-14 13:44:02 +03:00
catarrh
65127b8cfe
Show connect-phase messages in visible slot (was writing to hidden #pysim-status)
...
#pysim-status lives inside the hidden #pysim-connected-row, so 'Checking card…',
version warnings, and the connection-failure hint were never visible. Add
#pysim-connect-msg inside the disconnected info block and route pre-connect
messages to it.
2026-08-14 00:18:22 +03:00
catarrh
a88930b7b1
Show actionable warning when card server fetch fails; fix connect-button locale
...
- Detect likely browser PNA/local-network block via origin-vs-target heuristic
- Show warning mentioning both causes (server down + browser block)
- Fix 'Connect' button resetting to English after failed connect (t('Connect'))
- Fix 'Connection failed:' translation never matching (trailing-space key)
2026-08-14 00:14:32 +03:00
catarrh
ab78455ff6
docs: document browser local-network permission for public-hosted PWA
2026-08-13 23:59:53 +03:00
catarrh
e8158fa5c4
v1.6.1: document Private Network Access for public-hosted PWA
2026-08-13 23:35:54 +03:00
catarrh
3c03b04157
Add AES-128/192/256 support to secured packet builder (v1.6.0)
...
- Bundle aes-js as aes-bundle.js (standalone aesjs global), precache in SW (v7)
- Add AES-CBC (zero IV, 16/24/32B) + AES-CMAC (SP 800-38B, 8-octet) helpers
- genSp(): algorithm dispatch, AES counter hard-block (b5b4 = 10/11 per Rel-18)
- Cross-checked AES vectors against pySim OtaDialectSms.encode_cmd
- Docs: AES + 3DES deprecation, fix stale SPI1 value table
2026-08-13 22:56:35 +03:00
catarrh
6e2a670fc8
Help manual: note SMPP bridge omitted on Windows
2026-08-13 22:11:26 +03:00
catarrh
65aa38dc1b
Help manual: recommend Python 3.10-3.13 for pyscard wheels on Windows
2026-08-13 21:41:10 +03:00
catarrh
6418e1e37d
Help manual: note pyscard precompiled wheels + C++ Build Tools fallback
2026-08-13 21:31:32 +03:00
catarrh
e3b8664286
Fix disconnect message: pySim -> pysim-otaman-server
2026-08-13 21:11:34 +03:00
catarrh
925ff80d80
Add offline HTML help manual (EN/RU) with sidebar TOC + context-aware help link
2026-08-13 15:26:08 +03:00
catarrh
69a20baa9f
v1.5.1
2026-08-11 23:54:46 +03:00
catarrh
f764760b0a
Proactive log: decode PLI response data using PLI_CODECS; hide empty Response
2026-08-11 23:26:05 +03:00
catarrh
a2f7b60333
Proactive log: qualifier names for all multi-qual commands, Response line under command
2026-08-11 23:13:32 +03:00
catarrh
3b7dbf1743
Proactive log: inline TR hex, remove expand toggle + polling re-render
2026-08-11 23:05:34 +03:00
catarrh
7c5d0051d4
PWA poll loop: detect card disconnect, show 'Card disconnected'
2026-08-11 22:36:27 +03:00
catarrh
302a1f87a2
Rebuild CSS (gap-6 was purged)
2026-08-11 22:22:17 +03:00
catarrh
52bcd31387
Auto-poll toggle + PWA backend poll loop (5s) for proactive tab
2026-08-11 21:44:37 +03:00
catarrh
d4f40aaaef
Fix privilege byte 1 decode: add missing Mandated DAP Verification checkbox (bit 1)
2026-08-10 21:41:30 +03:00
catarrh
bdf3d1a352
Remove byte count from proactive command list
2026-08-10 20:16:34 +03:00
catarrh
c0784a10c6
Proactive log: show TERMINAL RESPONSE hex + SW on expand
2026-08-10 20:12:59 +03:00
catarrh
4de1bd49d8
Proactive log: expandable hex dump + decoded PLI qualifier names
2026-08-10 20:02:54 +03:00
catarrh
e4ef33c097
Add Send STATUS button above event list in Proactive UICC
2026-08-10 19:53:56 +03:00
catarrh
6e460908d8
README: Proactive UICC pill features
2026-08-10 19:46:23 +03:00
catarrh
ef754befab
v1.5.0: PLI data dictionary, event send, rejection cause dropdown, clipboard import fix
2026-08-10 19:44:25 +03:00
catarrh
f6d36aaf99
v1.4.3
2026-08-10 03:05:45 +03:00
catarrh
9608302a52
feat: Proactive UICC tab shows fetched proactive command log with type name, elapsed time, and byte count (i18n: RU)
2026-08-10 03:03:24 +03:00
catarrh
b67c9cb7cc
v1.4.2
2026-08-10 02:00:19 +03:00
catarrh
dc5b936f91
fix: move pysim-sub-proactive into correct tab parent (pysim, not C-APDU)
2026-08-10 01:31:21 +03:00
catarrh
15804f7d99
fix: move pysim-sub-proactive from C-APDU tab to card reader sub-tabs
2026-08-10 00:55:29 +03:00
catarrh
7bcc79d859
add 'Proactive UICC' pill to Card reader tab with event list display from SET UP EVENT LIST
2026-08-10 00:40:12 +03:00
catarrh
98b24a5389
hide OK button on SELECT ITEM view, show only on DISPLAY TEXT
2026-08-09 23:40:40 +03:00
catarrh
c0d69040d5
fix conversion layout (button below input), add missing closing divs, add HTML div-balance test
2026-08-09 22:47:49 +03:00
catarrh
9510813e78
fix: remove extra closing div that placed conversion below flex row
2026-08-09 22:41:40 +03:00
catarrh
a9de20aa0a
fix: remove extra closing div that broke outer container for non-C-APDU tabs
2026-08-09 22:39:45 +03:00
catarrh
d81305e157
fix C-APDU DOM nesting: add missing flex-1 and tab-c-apdu closing divs
2026-08-09 22:35:09 +03:00
catarrh
3388048ead
move Conversion block to right column in C-APDU tab
2026-08-09 22:31:13 +03:00
catarrh
40381bf6a5
share Conversion section across all C-APDU sub-tabs, remove duplicate from SIM/USIM
2026-08-09 22:27:31 +03:00
catarrh
5d6460c649
decrease vertical padding on top-level tabs (py-2 -> py-1.5)
2026-08-09 22:13:11 +03:00
catarrh
f2b18aafd5
C-APDU pills: centered, larger font, more padding
2026-08-09 22:12:15 +03:00
catarrh
1f0ab59c40
fix C-APDU DOM nesting: remove extra closing divs from sed substitution
2026-08-09 22:08:30 +03:00
catarrh
0987278d79
group SIM/USIM/BER-TLV/RAM tabs into C-APDU tab with sub-tab pills
2026-08-09 21:59:31 +03:00