ui: HTTP OTA pill labels, CAT_TP paired with the BIP opening (v3.5.0)
- The first two Push commands sub-pills carry the HTTP OTA prefix
("HTTP OTA Trigger (Push SMS)", "HTTP OTA Store (SD admin params)"), so the
form headings drop it and read "Administrative session trigger (Push SMS)"
/ "Administrative session store data (SD admin params)".
- BIP channel opening (01) gains the same-message CAT_TP follow-up: an "Also
request the CAT_TP link establishment (02) in the same message" checkbox
with the shared CAT_TP fields (destination port mandatory, optional max SDU
/ identification data / extra TLVs). The preview and Pack then carry the
pair 80EC0101...80EC0102... as one command script (concatenated SMS when
over 140 octets) and -> Expanded Script appends both 22 Command TLVs.
Rationale (SIMalliance Stepping Stones R7 18.6): 01 carries the channel
parameters, 02 only the CAT_TP port, and the guide recommends both in the
same SMS; standalone 02 stays for cards with provisioned defaults.
- Help 2.7 EN/RU, READMEs and AGENTS document the pairing, the fact that 03 is
self-contained (it carries the mandatory OPEN CHANNEL TCP set, so no
companion 01) and the Stepping Stones PoR advice (no PoR on success; on
failure use SMS-SUBMIT / SPI2 0x20).
- pushSectionApdus vectors cover the 01+02 pair and its mandatory port;
sw cache -> simple-v250.
This commit is contained in:
@@ -251,6 +251,18 @@ test('pushSectionApdus builds the guided §9 channel/link requests', () => {
|
||||
[tcp, '80EC01040436020102']);
|
||||
// The follow-up only applies to the TCP request.
|
||||
assert.deepStrictEqual(pushSectionApdus('link', { request: '01', pushData: '', withIdp: true }), ['80EC0101']);
|
||||
// Stepping Stones R7 18.6: the BIP channel opening and the CAT_TP link
|
||||
// request go in the same message; 01 carries the channel parameters, 02 the
|
||||
// CAT_TP port (mandatory) plus optional max SDU / identification data.
|
||||
assert.deepStrictEqual(
|
||||
pushSectionApdus('link', { request: '01', pushData: '', withCat: true, pushPort: '1F90' }),
|
||||
['80EC0101', '80EC0102053C03001F90']);
|
||||
assert.deepStrictEqual(
|
||||
pushSectionApdus('link', { request: '01', pushData: '', withCat: true, pushPort: '1F90', pushSdu: '0200', pushIdent: 'ABCD' }),
|
||||
['80EC0101', '80EC01020D3C03001F90390202003602ABCD']);
|
||||
// The CAT_TP port is mandatory for the pair, and the option only applies to 01.
|
||||
assert.deepStrictEqual(pushSectionApdus('link', { request: '01', pushData: '', withCat: true, pushPort: '' }), []);
|
||||
assert.deepStrictEqual(pushSectionApdus('link', { request: '01', pushData: '', withCat: false, pushPort: '1F90' }), ['80EC0101']);
|
||||
});
|
||||
|
||||
test('chainApduList drops GET RESPONSE and splits multi-APDU rows', () => {
|
||||
|
||||
Reference in New Issue
Block a user