Announcements
-
- Topic
- Views
- Posts
- Date
-
-
Welcome
Started by: Chris Torr in: Application Developer Forum
- 0
- 1
- 4 years ago
-
Welcome
-
Chris Torr
Forum Replies Created
-
AuthorPosts
-
Chris TorrKeymasterAugust 7, 2020
You’re welcome. Please check back here regularly for further additions.
- This reply was modified 1 year, 3 months ago by Chris Torr.
Chris TorrKeymasterAugust 7, 2020This is the latest list of primitives for MULTOS 4.5.5 products.
[PRIMITIVES]
;Format is=
0001=Check Case
0002=Reset WWT
0003=Get Session Size
0004=Update Session Size
0005=Load CCR
0006=Store CCR
0007=Set ATR File Record
0008=Set ATR Historical Characters
0009=Get Memory Reliability
000A=Lookup
000B=Memory Compare
000C=Memory Copy
000D=Query Interface Type
000E=Set ATS Historical Characters
000F=Memory Copy Non-Atomic
0010=Control Auto Reset WWT
0011=Set FCI File Record
0012=Set AFI
0013=Card Unblock
0014=Lookup Word
0015=Get Configuration Data
0016=Get Transaction State
0017=Exit to MULTOS and Restart
0018=Update Process Events
0019=Memory Fill
0080=Delegate
0081=Reset Session Data
0082=Checksum
0083=Call Codelet
0084=Query Codelet
0085=Exchange Data
0086=Query Channel
0087=Get FCI State
008A=Query Cryptographic Algorithm
0089=Platform Optimised Checksum
00C1=DES ECB Encipher
00C2=Modular Multiplication
00C3=Modular Reduction
00C4=Get Random Number
00C5=DES ECB Decipher
00C6=Generate DES CBC Signature
00C7=Generate Triple DES CBC Signature
00C8=Modular Exponentiation / RSA Sign
00C9=Modular Exponentiation CRT / RSA Sign CRT
00CA=SHA-1
00CB=GSM Authenticate
00CC=Generate Random Prime
00CD=SEED ECB Decipher
00CE=SEED ECB Encipher
00CF=Secure Hash
00D0=ECC Addition
00D1=ECC Convert Representation
00D2=ECC Equality Test
00D3=ECC Inverse
00D4=ECC Scalar Multiplication
00D6=AES Decipher
00D7=AES Encipher
00D8=Triple DES ECB Decipher
00D9=Triple DES ECB Encipher
00DA=Check BCD
00DB=Get Replaced Application State
00DC=Modular Exponentiation CRT Protected / RSA Sign CRT Protected
00DD=Get AID
00E4=Secure Hash IV
00E5=Initialise PIN
00E6=Read PIN
00E7=Verify PIN
00E8=Get Process Event
00E9=Reject Process Event
00EB=RSA Verify
00EC=Flush Public
0100=Query0
0101=Query1
0102=Query2
0103=Query3
0104=Update Static Size
0105=Memory Compare Enhanced
0106=Memory Copy From Replaced Application
0107=Manage Stack
0108=DivideN
0109=Get DIR File Record
010A=Get File Control Information
010B=Get Manufacturer Data
010C=Get MULTOS Data
010D=Get Purse Type
010E=Memory Copy Fixed Length
010F=Memory Compare Fixed Length
0110=MultiplyN
0111=Add BCDN
0112=Subtract BCDN
0113=Memory Copy Non-Atomic Fixed Length
0114=Convert BCD
0115=Pad
0116=Unpad
0117=Get Available Interface Types
0118=Control Atomic Writes
0180=Set Transaction Protection
0181=Get Delegator AID
0185=Set PIN Data
0186=Get PIN Data
0187=Get Data
01C4=Generate Asymmetric Hash General
01C6=Generate MAC
01D0=Modular Inverse
01D1=ECC Verify Point
01DC=Configure Read Binary
01DD=Memory Copy Additional Static
01DE=Memory Fill Additional Static
01DF=Get Static Size
01E1=Generate Asymmetric Signature General
01E2=Verify Asymmetric and Retrieve General
01E3=Set Silent Mode
01E4=Initialise PIN Extended
01E5=ECC Generate Signature
01E6=ECC Verify Signature
01E7=ECC Generate Key Pair
01E8=ECC Elliptic Curve Diffie Hellman
01E9=ECC ECIES Decipher
01EA=ECC ECIES Encipher
0201=Bit Manipulate Byte
0202=Shift Left
0203=Shift Right
0204=SetSelectSW
0205=CardBlock
0206=SetContactlessSelectSW
0207=ShiftRotate
0280=Return From Codelet
02DA=Block Decipher
02DB=Block Encipher
02E0=Generate RSA Key Pair
0301=Bit Manipulate Word
0380=Call Extension 0
0381=Call Extension 1
0382=Call Extension 2
0383=Call Extension 3
0384=Call Extension 4
0385=Call Extension 5
0386=Call Extension 6Chris TorrKeymasterAugust 7, 2020These are just fragments of code that you can add to your own application.
Chris TorrKeymasterAugust 7, 2020The same solutions also work if the MULTOS project type is not visible (under Others) when creating a new C Project in Eclipse.
August 16, 2019 at 8:57 am in reply to: Multos Trust Anchor in contact smart card mode and GPIO? #387Chris TorrKeymasterAugust 7, 2020Hi Damien,
If you’re interested to know why, the attributes are part of the debug file (.hzx) and can be picked up by the tools in Smartdeck, e.g. hterm and melcertgen.
MUtil does not read the debug files, only the final release code (.alu files) so you have to specify the ALC parameters manually in MUtil (or in the KMA interface when using live cards).
Regards,
Chris.August 8, 2019 at 7:41 am in reply to: Multos Trust Anchor in contact smart card mode and GPIO? #385Chris TorrKeymasterAugust 7, 2020Hi, yes it is possible. You will however get an abend if you don’t set the correct access_list bit or if you initialise the GPIO pins more than once between resets, but those wouldn’t be firewall violations. Look for bad array indexing or bad pointers, anything that produces an out of bounds memory read/write.
Regards,
ChrisJuly 5, 2019 at 1:09 am in reply to: Multos Trust Anchor and smart card mode (contact ISO interface) #383Chris TorrKeymasterAugust 7, 2020Hi Damien,
Try connecting Vcc (pin 11 on breakout board) as well as Vcc_ISO. That works for me. I do also have all the GND pins connected to GND.
Regards,
Chris.Chris TorrKeymasterAugust 7, 2020Hi. In answer to your questions…
1,2 & 3) You buy the chip with the OS already loaded.
4) Some MULTOS cards with contactless support already support MIFARE
Regards,
Chris.Chris TorrKeymasterAugust 7, 2020The Infineon product name is SLE78CLUFX5000PHM. I will update the page linked to above to make that much clearer.
Chris TorrKeymasterAugust 7, 2020Hi Damien,
You can find more details on the IC here.
To get information on the implementation you can use the hterm options -multos and -manufacturer.
Hope that helps.
Chris.Chris TorrKeymasterAugust 7, 2020Hi Damien,
The prime length range supported is 21 – 66 bytes inclusive. That rules out the smaller curves you tried.
Domain parameters must also be consistent with Short Weierstrass equation representation (y^2 = x^3 + A.x +B). Perhaps that is why some of the others didn’t work?
Chris.
Chris TorrKeymasterAugust 7, 2020You have uncovered a couple of issues here, thanks. The core one though is that when block-mode loading of data was introduced the functionality wasn’t included for AUR files. To be honest, I didn’t know anyone was still using AUR files!
The cards you are using don’t support block-mode loading anyway, so deselect that option in StepXpress for your application and get new ALCs. Hopefully then all should be fine with the interim version of MUtil I have sent to you. I will do a formal release including these changes (and others) when I know all is OK.
Thanks for your input.
Chris.Chris TorrKeymasterAugust 7, 2020Hi Bernard, I’ll have a look and see what may be causing that. MUtil 2.2 is REALLY old!
Thanks,
Chris.Chris TorrKeymasterAugust 7, 2020If you need to clear a block of memory, use multosClear() rather than memset(). This works for up to 255 byte buffer and is a single MEL instruction so is much quicker.
Chris TorrKeymasterAugust 7, 2020Hi Bernard,
The APDU to use is Get Configuration Data.
CLA=80
INS=10
P1=01
P2=00
Le=03See the MDRM for more details. You can also use the Remaining E2 Size button in MUtil.
Cheers,
Chris. -
AuthorPosts