feat: name standard package AIDs in the Explore / SCP81 / R-APDU views (v3.5.7)
The RAM Explore view, the SCP81 GET STATUS script results and the R-APDU parser tree showed package AIDs as bare hex. A shared resolver now annotates the known standard JavaCard / ETSI / 3GPP / GlobalPlatform package AIDs with their library name (workspace export-file study `docs/JAVACARD.md`, 2026-09-26, plus the GP default ISD AID from GP Card Spec v2.3.1 H.1.3); a RID table gives a weak owner hint for otherwise unknown AIDs, and vendor/applet AIDs stay bare. - JC_AID_NAMES / JC_AID_RIDS + jcAidName / jcAidSuffix / jcAidHtml. - Wired into ramRenderExploreHtml (ISD, applications, ELFs, module and SD AIDs), scp81ResultLines GET STATUS listings and decodeTlvValue (4F/84/C4/CC - the R-APDU parser tree). - aid_names.test.js (families, normalisation, RID hints, malformed input, table sanity) plus render assertions in ram.test.js and scp81.test.js. - Help EN/RU note the annotation; table is hand-maintained from the note. 561 frontend / 421 Python green; version 3.5.7; sw cache simple-v260.
This commit is contained in:
@@ -58,6 +58,10 @@ test('scp81LogLine renders script entries', () => {
|
||||
'13 script-memory applets=4 free NV=61600 free vol=2048');
|
||||
});
|
||||
|
||||
eval(html.match(/const JC_AID_NAMES = \{[\s\S]*?\n\};/)[0].replace(/^const /, 'var '));
|
||||
eval(html.match(/const JC_AID_RIDS = \{[\s\S]*?\n\};/)[0].replace(/^const /, 'var '));
|
||||
eval(extractFunc(html, 'jcAidName'));
|
||||
eval(extractFunc(html, 'jcAidSuffix'));
|
||||
eval(extractFunc(html, 'scp81DecodeGetStatus'));
|
||||
eval(extractFunc(html, 'scp81GroupResults'));
|
||||
eval(extractFunc(html, 'scp81ResultLines'));
|
||||
@@ -105,6 +109,15 @@ test('scp81ResultLines decodes GET STATUS entries', () => {
|
||||
}
|
||||
});
|
||||
|
||||
test('scp81ResultLines annotates standard package AIDs and RID hints', () => {
|
||||
const lines = scp81ResultLines({ apdu: '80F24002024F0000', results: [
|
||||
{ rapdu: 'E30E4F08A0000001510000009F70010F', sw: '9000' },
|
||||
{ rapdu: 'E3174F07A00000015153509F7001018408A000000062010101', sw: '9000' },
|
||||
] });
|
||||
assert.strictEqual(lines[0], 'A000000151000000 (GlobalPlatform Issuer Security Domain) life=0F');
|
||||
assert.strictEqual(lines[1], 'A0000001515350 (GlobalPlatform RID) life=01 module=A000000062010101 (javacard.framework.service)');
|
||||
});
|
||||
|
||||
eval(extractFunc(html, 'scp81Ascii'));
|
||||
eval(extractFunc(html, 'scp81Bcd'));
|
||||
eval(extractFunc(html, 'scp81DecodeAdminParams'));
|
||||
|
||||
Reference in New Issue
Block a user