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

Reply via email to