SC4-P12
SC4-P12 on Infineon SLE77 Platform
Application Related Characteristics | Primitive Support | Implementation Specific Characteristics | Codelets Available
External Characteristics
Data Item |
Value |
Comments |
||
---|---|---|---|---|
External Specification |
||||
MULTOS Step/One Version |
1.3 |
|
||
Silicon Provider / manufacturer_id |
Infineon / 0x05 |
|
||
Implementers / implementer_id |
Multos International / 0x02 |
|
||
Mask / ic_type |
SC4-P12 (ic_type: B1) SC4-P12 (ic_type: B3) SC4-P12 (ic_type: B4) SC4-P12 (ic_type: B5) SC4-P12 (ic_type: B6) SC4-P12 (ic_type: B7) SC4-P12 (ic_type: D8) SC4-P12 (ic_type: DC) SC4-P12 (ic_type: DE) |
Contact Multos International for other non-standard configurations |
||
Technical Data for contact interface |
||||
Power / External Clock |
1.62V to 5.5V / 1 to 7.5 MHz |
Applies to all masks |
||
Transport Protocol |
T = 0, T = 1 |
Applies to all masks |
||
FI/DI |
0x01, 0x02, 0x03, 0x08, 0x11, 0x12, 0x13, 0x18, 0x32, 0x33, 0x34, 0x38, 0x92, 0x93, 0x94, 0x95, 0x96, ,0x97, 0xA3, 0xA4, 0xA5, 0xA6, 0xA8 |
Applies to all masks |
||
Dual |
Supported |
Pre-enablement ATR: 3B FF 96 00 FF C0 0A 31 FE 4D 80 31 E0 6B 08 xx 05 02 yy 55 55 55 55 55 55 zz
SC4-P13 (ic_type: B1): xx=FF, yy=B1, zz=A5 xx=21, yy=B1, zz=7B SC4-P13 (ic_type: B3): xx=22, yy=B3, zz=7A SC4-P13 (ic_type: B4): xx=23, yy=B4, zz=7C SC4-P13 (ic_type: B5): xx=24, yy=B5, zz=7A SC4-P13 (ic_type: B6): xx=26, yy=B6, zz=7B SC4-P13 (ic_type: B7): xx=27, yy=B7, zz=7B SC4-P13 (ic_type: D8): xx=28, yy=D8, zz=1B SC4-P13 (ic_type: DC): xx=2B, yy=DC, zz=1C SC4-P13 (ic_type: DE): xx=2A, yy=DE, zz=1F |
||
|
Supported, max speed 447kbps @ 3.58MHz |
Applies to all masks |
||
|
Supported |
Applies to all masks |
||
|
Supported |
Applies to all masks |
||
Memory Area Sizes |
||||
|
- |
Not applicable |
||
ROM |
- |
Not applicable |
||
|
530 bytes |
Applies to all masks |
||
|
1790 bytes (max) |
Applied to all masks. Please see remarks |
||
EEPROM Total |
58KB |
Applies to all masks |
||
EEPROM available for applications |
SC4-P13 (ic_type: B1) – 10KB SC4-P13 (ic_type: D8) – 36KB SC4-P13 (ic_type: DC) – 10KB SC4-P13 (ic_type: DE) – 8KB |
|
||
AMD |
||||
Default AMD |
AMD 0123v002 |
|
||
Optional AMD(s) |
AMD 0141v001 |
|
||
Application Related Characteristics
Data Item |
Value |
Comments |
---|---|---|
Application EEPROM Loading Requirements |
||
Application Header |
256 bytes |
Applies to all masks |
Total temporary space per protected |
128 bytes |
This represents the maximum size. Applies to all masks |
Total temporary space per confidential |
256 bytes |
This represents the maximum size. Applies to all masks |
MULTOS Application Function |
||
Static Page Size (1 page) |
32 bytes |
Applies to all masks |
Maximum write size in pages |
at least 9 pages |
Limited by available EEPROM. Applies to all masks |
Maximum |
19 bytes |
Applies to all masks |
Maximum |
15 bytes |
Applies to all masks |
Maximum DIR File record size |
255 bytes |
Applies to all masks |
Maximum FCI record size |
255 bytes |
Applies to all masks |
Maximum inbound TPDU size |
256 bytes |
Applies to all masks |
Maximum outbound TPDU size |
255 bytes |
Applies to all masks |
Maximum delegation nest count |
Limited by available RAM |
Applies to all masks |
Maximum application history list entries |
Limited by available EEPROM |
Applies to all masks |
Retry Counters |
||
Set |
32 |
Test cards set to 255. Applies to all masks |
Create |
32 |
Test cards set to 255. Applies to all masks |
Delete |
32 |
Test cards set to 255. Applies to all masks |
Primitive Support
The primitives listed here are those that were included in the target specification.
Primitive |
Supported |
Optional / Mandatory |
---|---|---|
3DES ECB Decipher |
No |
|
3DES ECB Encipher |
No |
|
Add BCDN |
Yes |
|
AES ECB Decipher |
No |
|
AES ECB Encipher |
No |
|
Block Decipher |
Yes |
|
Block Encipher |
Yes |
|
Bit Manipulate Byte |
Yes |
|
Bit Manipulate Word |
Yes |
|
Call Codelet |
Yes |
|
Call Extension 0, 1, 2, 3, 4, 5, 6 |
No |
Optional |
Card Block |
Yes |
|
Card Unblock |
Yes |
|
Check Case |
Yes |
|
Checksum |
Yes |
|
Configure Read Binary |
No |
Optional |
Control Auto Reset WWT |
No |
|
Convert BCDN |
Yes |
|
Delegate |
Yes |
|
DES ECB Decipher |
Yes |
|
DES ECB Encipher |
Yes |
|
DivideN |
Yes |
|
ECC Addition |
No |
Optional |
ECC Convert Representation |
No |
Optional |
ECC ECIES Decipher |
No |
Optional |
ECC ECIES Encipher |
No |
Optional |
ECC Elliptic Curve Diffie Hellman |
No |
Optional |
ECC Equality Test |
No |
Optional |
ECC Generate Key Pair |
No |
Optional |
ECC Generate Signature |
No |
Optional |
ECC Inverse |
No |
Optional |
ECC Scalar Multiplication |
No |
Optional |
ECC Verify Point |
No |
Optional |
ECC Verify Signature |
No |
Optional |
Exchange Data |
No |
Optional |
Exit to MULTOS and Restart |
No |
|
Generate Asymmetric Hash General |
No |
|
Generate Asymmetric Signature General |
No |
Optional |
Generate DES CBC Signature |
Yes |
|
Generate Random Prime |
No |
|
Generate RSA Key Pair |
No |
|
Generate Triple DES CBC Signature |
Yes |
|
Get Data |
Yes |
|
Get Delegator AID |
Yes |
|
Get DIR File Record |
Yes |
|
Get File Control Information |
Yes |
|
Get Manufacturer Data |
Yes |
|
Get Memory Reliability |
No |
|
Get MULTOS Data |
Yes |
|
Get PIN Data |
Yes |
|
Get Purse Type |
No |
Optional |
Get Random Number |
Yes |
|
Get Static Size |
No |
Optional |
GSM Authenticate |
No |
Optional |
Initialise PIN |
Yes |
|
Load CCR |
Yes |
|
Lookup |
Yes |
|
Lookup Word |
Yes |
|
Memory Compare |
Yes |
|
Memory Compare Fixed Length |
Yes |
|
Memory Copy |
Yes |
|
Memory Copy Additional Static |
No |
Optional |
Memory Copy Fill Additional Static |
No |
Optional |
Memory Copy Fixed Length |
Yes |
|
Memory Copy Non-Atomic |
Yes |
|
Memory Copy Non-Atomic Fixed Length |
Yes |
|
Memory Fill Additional Static |
No |
Optional |
Modular Exponentiation/RSA Sign |
No |
|
Modular Exponentiation CRT/ RSA Sign CRT |
No |
|
Modular Exponentiation CRT Protected/RSA Sign Protected |
No |
|
Modular Inverse |
No |
Optional |
Modular Multiplication |
No |
Optional |
Modular Reduction |
No |
Optional |
MultiplyN |
Yes |
|
Pad |
No |
|
Platform Optimized Checksum |
Yes |
|
Query Channel |
No |
Optional |
Query Codelet |
Yes |
|
Query Cryptographic Algorithm |
No |
|
Query Interface Type |
Yes |
|
Query0, Query1, Query2, Query3 |
Yes |
|
Read PIN |
Yes |
|
Reset Session Data |
Yes |
|
Reset WWT |
No |
|
Return from Codelet |
Yes |
|
RSA Verify |
No |
Optional |
Secure Hash |
No |
|
Secure Hash IV |
No |
Optional |
SEED ECB Decipher |
No |
|
SEED ECB Encipher |
No |
|
Set AFI |
No |
|
Set ATR File Record |
Yes |
|
Set ATR Historical Characters |
Yes |
|
Set ATS Historical Characters |
No |
Optional |
Set Contactless Select SW |
No |
|
Set FCI Record |
Yes |
|
Set PIN Data |
Yes |
|
Set Select SW |
Yes |
|
Set Silent Mode |
No |
Optional |
Set Transaction Protection |
Yes |
|
SHA-1 |
Yes |
|
Shift Left |
Yes |
|
Shift Right |
Yes |
|
Store CCR |
Yes |
|
Subtract BCDN |
Yes |
|
Unpad |
No |
|
Verify PIN |
Yes |
|
Verify Asymmetric And Retrieve General |
No |
Optional |
Implementation Specific Characteristics
Zero Block Size
The following instructions and primitives have the block size specified in the code (as opposed to being run-time data). The following table shows how each will perform if a zero block size is specified.
Type |
Instruction / Primitive |
Operation |
---|---|---|
Instruction |
LOAD, STORE, LOADI, STOREI |
no operation |
CLEARN |
no operation |
|
TESTN, INCN, DECN, NOTN |
Z = 1 |
|
CMPN, ADDN, SUBN |
C = 0, Z = 1 |
|
ANDN, ORN, XORN |
Z = 1 |
|
Primitive |
MultiplyN |
Z = 1 |
DivideN |
C = 1, Z = unchanged |
|
ShiftLeft, ShiftRight |
C = 0, Z = 1 |
|
GetDIRFileRecord |
One byte set to zero pushed onto stack, If the application specified does not exist, C = 1, Z = 1 If the application specified exists, C = 0, Z = 0 |
|
GetManufacturerData |
One byte set to zero pushed onto stack, C = 0 Undefined: implementation specific handling Undefined: implementation specific handling |
|
MemoryCompareFixedLength |
DT’ = DT – 4, C = 0, Z = 1 |
|
MemoryCopyFixedLength |
DT’ = DT – 4 |
|
AddBCDN / SubBCDN |
Max operand length = 6 bytes |
Maximum Number of Pages Permitted in a Single Write
The maximum number of pages is at least nine when transaction protection is used. It is possible to write more than nine pages if there is free EEPROM. Note that if an attempt is made to write more than 9 pages and if there is insufficient free EEPROM, then an abnormal end to processing to will occur.
Condition Code Register
This implementation does support signed arithmetic. The N and V flags are present in the CCR, and they may be changed by some instructions. However, signed arithmetic is not guaranteed and should be avoided. They may be used by an application using the Load CCR and Store CCR primitives, but this may affect the portability of the application.
Recommendation to Application Developers Regarding Writing Large Blocks of Data to Static Memory
This implementation does allow applications to write large blocks of data (up to 248bytes) to static memory in a single write.
If an application for this implementation needs to write more than 248bytes in a single write, the application should turn on transaction protection prior to the Static write and then commit the transaction immediately after the Static write.
Important Remarks
This section contains important remarks about the Primitives and IFD commands of this implementation.
Functionality |
Operation |
---|---|
Bit Manipulate Byte Bit Manipulate Word |
Bits 6 to 2 of b2 are ignored. That is, the primitives return the expected result regardless of the value of bits 6 to 2 of b2. |
Block Decipher Block Encipher |
Supports DES & 3DES in CBC and ECB modes. |
Checksum |
If the checksummed area includes the parameters (the top four bytes of Dynamic), the checksum will be correctly calculated. |
Convert BCD |
Max operand length = 6 bytes |
Default Application |
This version 1.3 functionality is supported with the listed MULTOS 4.3.1 primitives |
DivideN |
Numerator: min – 1 byte, max = 256 bytes, granularity = 1 byte Denominator: min = 1 byte, max 128 bytes, granularity = 1 byte |
Get Manufacturer Data Get MULTOS Data Get Purse Type |
If the destination is stack top, the last byte of retrieved data will be overwritten by the length of data retrieved. That is, the number of bytes copied is always returned on the stack regardless of the destination segment address.
|
Get Memory Reliability |
MULTOS 4 always indicates memory is reliable: C = 0, Z = 0. |
Lookup |
If the target value appears more than once in the list, the location of the first is reported. The list need not be sorted. If the target value is not found, it is left unchanged on the stack. |
MultiplyN |
The length of each operand must not be greater than 12 bytes |
Set Transaction Protection |
Bits 7 to 2 of b2 are ignored. That is, the primitive returns the expected result regardless of the value of bits 7 to 2 of b2. Infineon chips copy the source data to a temporary store and any updates are made to the source data. In the case of a rollback, the copy of the original source data is written to the source. |
Shift Left and Shift Right
|
With b2 > 0, if b3 = 0, C= 0 and Z is set appropriately.
With b2 > 0, if b3 > 8 * b2, C = 0 and Z = 1. |
Available RAM |
MULTOS stepone SC4 has a total of 1790-bytes of RAM available. However, This RAM is shared between application dynamic, the delegation mechanism, transaction protection mechanism and crypto functions. If at any point MULTOS runs out of resources then an abend will occur. An example scenario is as follows:
|
Codelets Available
The table below indicates the codelets available on each SC4 product configuration.
Product |
MCAM |
PURE |
VSDC R3 |
VSDC R4 |
DPAS |
PSE |
---|---|---|---|---|---|---|
SC4-P12 (ic_type: B1) |
X |
X |
X |
|
|
X |
SC4-P12 (ic_type: B3) |
|
X |
|
|
|
X |
SC4-P12 (ic_type: B4) |
|
X |
|
|
|
X |
SC4-P12 (ic_type: B5) |
X |
|
X |
|
|
X |
SC4-P12 (ic_type: B6) |
X |
|
X |
|
X |
X |
SC4-P12 (ic_type: B7) |
|
|
|
|
X |
X |
SC4-P12 (ic_type: D8) |
|
|
|
|
X |
X |
SC4-P12 (ic_type: DC) |
|
X |
|
|
X |
X |
SC4-P12 (ic_type: DE) |
X |
|
|
X |
|
X |
Details of the codelets are as follows:
0080: MCAM R1 v1.2 Base codelet
0075: PURE Base Codelet (PURE DI v1.1)
0069: VSDC R3 Base codelet (VIS 1.4.1 + VCPS 2.0.2)
008F: VSDC R4 Base codelet
008C: DPAS R2 v1.0 Base Codelet
006C: PSE/PPSE R2 (Dynamic PSE) codelet
Romlets Available
There are no romlets available.