Hello, Fixed the wrong URL for Github gist >> I've figured out that my problem was in LOAD commands, now reading GP code, I've written this loader: >> https://gist.github.com/Novitoll/f0dbyour070f06d8a268adf571d5c8eb3947 <https://gist.github.com/Novitoll/f0db070f06d8a268adf571d5c8eb3947>
Here is the valid link: https://gist.github.com/Novitoll/f0db070f06d8a268adf571d5c8eb3947 Please assist. Stuck here. Method component is not LOADed... Reading JCVM spec for "6.9 Method Component", but this is not helping, I guess. I've removed all "static" from Applet as well. idk what to do more :( Forgot to mention, that I'm compiling CAP from here https://github.com/simhacks/hello-stk.git I've also tried https://github.com/martinpaljak/ant-javacard, no luck as well. Same thing on Method component loading. JDK's are 2.x, e.g. default as in repositories. And local java and javac are openjdk-8. also tried with openjdk-11 — same thing On Fri, Feb 4, 2022 at 12:37 AM Sabyrzhan Tasbolatov <[email protected]> wrote: > Hello, > > Sorry for posting this question here, I've asked this GPPro Martin as well. > Not sure if I should've included him as well.. Just there is a few people > to > ask help for this level of details. > > I've figured out that my problem was in LOAD commands, now reading GP > code, I've written this loader: > https://gist.github.com/Novitoll/f0dbyour070f06d8a268adf571d5c8eb3947 > <https://gist.github.com/Novitoll/f0db070f06d8a268adf571d5c8eb3947> > > Every component in CAP file is in separate APDU with LOAD instruction. > First 5 is loaded successfully with DATA=00, SW=9000, however on Method it > fails. > As you can see from my script, I've fixed Descriptor size to 0000 in > Directory field. > And in Header C482xxyy, where xxyy is calculated properly, which is a sum > of > all size fields in Directory, e.g. > > 016a = 0011+001f+000c+001e+0042+0018+006d+0032+0017+0000+0000 > > *Question*: Can't figure out why Method LOAD fails? By checking GP 2.1 > spec, it doesnt > help me understand the problem. > Concatenated components to < 255 block size also fails, > only separate components work for LOAD. > > [+] Install for load > >> 80e602001207d07002ca449001000006ef04c60201850000c0000000 > << 009000 > [+] LOAD - Header > >> 80e8000018c482*016a*010011decaffed010204000107d07002ca44900100c0000000 > << 009000 > [+] LOAD - Directory > >> 80e800012202001f*0011001f000c001e00420018006d0032001700000000* > 00040002002202010000c0000000 > << 009000 > [+] LOAD - Import > >> > 80e800022104001e02000107a0000000620101060210a0000000090003ffffffff891071000200c0000000 > << 009000 > [+] LOAD - Applet > >> 80e800030f03000c0108d07002ca44900101002000c0000000 > << 009000 > [+] LOAD - Class > >> > 80e800041b06001843800301ff0007020000002f00398002008101010881000000c0000000 > << 009000 > *[!!!!] LOAD - Method (FAILED)* > >> > *80e800057007006d000911188c00048d00012c18197b0002037b00029210240303038b000388007a02318f00053d8c00062e1b8b00077a0120188b000860037a7a02228d00092d1d10076b101a8b000a321fae006b06188c000b7a06118d000c2c1903077b000d037b000d928b000e198b000f3b7a00c0000000* > *<< 9000 (should be 009000)* > > [-] LOAD - StaticField (FAILED due to last failed LOAD) > >> 80e80006350800..... > << 6A86 (because prev. p2=05 is not loaded) > > P.S.: I couldnt find the right spec explaining "C482XXYY" in Header.cap, > how it should be calculated, > this answer below helped me navigate, but for Method.cap loading - it > still fails > > https://community.oracle.com/tech/developers/discussion/1753814/globalpaltform-load-command-data-field > > > On Mon, Jan 24, 2022 at 6:24 PM Sabyrzhan Tasbolatov <[email protected]> > wrote: > >> Hello Vadim, >> >> > Is there a specific reason to write your own code for that? >> I was told that the OSS shadysim.py is a raw version, moreover >> there are bytes in strings that are not explained in comments etc. >> I wanted to understand every byte I need to send, reading specs, >> so I've managed to write this script, APDUs are same as in shadysim.py, >> except the encryption part as my SPI, KIC, KID are different from >> sysmoUSIM-J2. >> >> > If not, give https://github.com/martinpaljak/GlobalPlatformPro a try. >> I will try again, thanks. Last time I was stuck at --key-enc (KIC1), >> --key-mac (KID1), >> params are not taken and default keys are used for some reason. >> Generally, I chose initially applet installation via SMS-DELIVER, AFAIK, >> GP is a different approach. >> >> Another question please: >> - If I have already installed USIM applet on SIM card, and I want to >> install another one, >> will it be a conflict? As EF_DIR needs to be updated probably? Or last >> SELECTed AID >> is saved on UICC (per specification) and it will "replace" the older >> applet, or should I >> DELETE the original one? >> >> Thanks >> On Mon, Jan 24, 2022 at 5:59 PM Vadim Yanitskiy <[email protected]> >> wrote: >> > >> > Hi Sabyrzhan, >> > >> > AFAIU, in your script you're using the GlobalPlatform API to manage >> > cardlets. Is there a specific reason to write your own code for that? >> > If not, give https://github.com/martinpaljak/GlobalPlatformPro a try. >> > >> > Best regards, >> > Vadim. >> > >> > -- >> > - Vadim Yanitskiy <vyanitskiy at sysmocom.de> >> http://www.sysmocom.de/ >> > ======================================================================= >> > * sysmocom - systems for mobile communications GmbH >> > * Alt-Moabit 93 >> > * 10559 Berlin, Germany >> > * Sitz / Registered office: Berlin, HRB 134158 B >> > * Geschaeftsfuehrer / Managing Director: Harald Welte >> >> >> >> -- >> Sabr >> > > > -- > Sabr > -- Sabr
