[Muscle] GlobalPlatform component

Peter Williams home_pw at msn.com
Tue Mar 25 23:06:04 PDT 2008


Running the script below, I do seemed to have now run putkey against a 201 
card, and created a new keyver (2). It required mapping  OP201 to OP_201 in 
GlobalPLatform.c.  I did complete mutual auth, but only after fiddling 
around, including putting OP201 back to its original value.


We need to look carefully at  the issue of the #defines in the .h versus the 
.c, and understand their impact on 201 mutual auth, vs 201 putkey.

mode_201
enable_trace
establish_context
card_connect
#
##select -AID a0000000638653494401

select -AID a0000000030000

## after an mutual auth, putkey DOES now work on DoD/martsoft OS card when 
OP201 == OP_201

##open_sc -security 1 -keyind 0 -keyver 0 -mac_key 
49213ee9550805fc90b1a75324407347 -enc_key 
2e5e246c2c357a545c42e838556cd21e -kek_key 89d3e84f67ecacabb7f70a23cb146d25 
// Open secure channel

##put_sc_key -keyver 1 -newkeyver 2 -mac_key 
404142434445464748494a4b4c4d4e4f -enc_key 
404142434445464748494a4b4c4d4e4f -kek_key 
404142434445464748494a4b4c4d4e4f -current_kek 
89d3e84f67ecacabb7f70a23cb146d25 // Put secure channel keys




## one can now mutual auth using keyver 2, but possibly only when OP201 == 
1. Need to test more. (Was getting worried about card lockup! Happy to just 
get a 9000!)

open_sc -security 1 -keyind 1 -keyver 2 -mac_key 
404142434445464748494a4b4c4d4e4f -enc_key 
404142434445464748494a4b4c4d4e4f -kek_key 404142434445464748494a4b4c4d4e4f

card_disconnect
release_context

--------------------------------------------------
From: "Peter Williams" <home_pw at msn.com>
Sent: Tuesday, March 25, 2008 10:32 PM
To: "MUSCLE" <muscle at lists.musclecard.com>
Subject: Re: [Muscle] GlobalPlatform component

> the only "testing" to date is that it links, and the binary loads: it 
> debugs fine in visual studio 2005, now.
>
> ---------
>
> I am getting confused over the following lines in GlobalPlatform.c
>
> #define OP201 0x01 //!< Operation mode for OpenPlatform 2.0.1'
> #define GP211 0x02 //!< Operation mode for GlobalPlatform 2.1.1
>
> These #defined symbols are also defined in an .h file.
>
> As the card mode and the platform mode interact , when used with GPShell, 
> the library will not put the OP201 DES algid into the putkey APDU when the 
> shell is using the .h value for OP201 (201) whilst the library is testing 
> casd mode against the symbol whose value is defined in the .c file(1). 
> Obviously, 201 != 1.
>
> It happens to work for the default case, GP211, and thus logic seems to 
> always force the default case. This may explain why I get (key) algorithm 
> not supported errors back from my 6464C/Martsoft and Phillips/JCOP21 
> 201-era cards, when doing usig GPshells putkey command.
>
> Analysis and testing on still ongoing, note.
>
>
>
> --------------------------------------------------
> From: "Karsten Ohme" <widerstand at t-online.de>
> Sent: Tuesday, March 25, 2008 4:15 PM
> To: "MUSCLE" <muscle at lists.musclecard.com>
> Subject: Re: [Muscle] GlobalPlatform component
>
>> Peter Williams schrieb:
>>>  Recommend adding !defined(OPGP_LIB) to GlobalPlatform.h, to allow 
>>> static library build, as in following suggested change
>>
>> Have you already tested this? Is there anything more necessary when 
>> linking an application against the static library?
>>
>> Karsten
>>
>>>  #if defined(WIN32)&& !defined(OPGP_LIB)
>>>  #ifdef OPGP_EXPORTS
>>>  #define OPGP_API __declspec(dllexport)
>>>  #else
>>>  #define OPGP_API __declspec(dllimport)
>>>  #endif
>>> #else
>>>  #define OPGP_API
>>> #endif
>>>
>>> ------------------------------------------------------------------------
>>> In a rush? Get real-time answers with Windows Live Messenger. 
>>> <http://www.windowslive.com/messenger/overview.html?ocid=TXT_TAGLM_WL_Refresh_realtime_042008>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Muscle mailing list
>>> Muscle at lists.musclecard.com
>>> http://lists.drizzle.com/mailman/listinfo/muscle
>>
>> _______________________________________________
>> Muscle mailing list
>> Muscle at lists.musclecard.com
>> http://lists.drizzle.com/mailman/listinfo/muscle
>>
> _______________________________________________
> Muscle mailing list
> Muscle at lists.musclecard.com
> http://lists.drizzle.com/mailman/listinfo/muscle
> 


More information about the Muscle mailing list