From f7b826b2432d4f627de814c842eb4241338fed1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD=20=D0=A2=D1=80=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Tue, 1 Sep 2026 21:14:18 +0300 Subject: [PATCH] v1.9.24: add GET RESPONSE to RAM/GP chain builder - Added get-response to CHAIN_CMDS_RAM - Added + GET RESPONSE button to RAM/GP sub-tab - Added Le input field template in chainRamFieldsHtml - Added CLA=80 GET RESPONSE handler in chainRamBuildRowHex - Le stripping for Case 4 + GET RESPONSE already handled by chainBuildHex --- frontend/index.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/frontend/index.html b/frontend/index.html index 09694d4..930165a 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -129,6 +129,7 @@ + @@ -1125,6 +1126,7 @@ const CHAIN_CMDS_RAM = [ {value:'store-data',label:'STORE DATA'},{value:'set-status',label:'SET STATUS'}, {value:'ext-auth',label:'EXTERNAL AUTHENTICATE'}, {value:'int-auth',label:'INTERNAL AUTHENTICATE'}, + {value:'get-response',label:'GET RESPONSE'}, ]; function chainInit(id) { if (!_chains[id]) _chains[id] = {rows: []}; } @@ -1465,6 +1467,10 @@ function chainRamFieldsHtml(idx, row, f, uf) { return '
' + '
'; } + if (cmd === 'get-response') { + return '
' + + '
'; + } return ''; } @@ -1870,6 +1876,10 @@ function chainRamBuildRowHex(idx, row) { var dl9 = berLenStr(ramData4.length / 2); return buildApdu(0x00, 0x88, 0x00, 0x00, parseInt(dl9, 16), ramData4) + '00'; } + if (cmd === 'get-response') { + var le = parseInt(f.le, 16) || 0; + return buildApdu(0x80, 0xC0, 0x00, 0x00, le, null); + } return ''; }