- fix cflex key generation
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@1536 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
parent
937e6c711d
commit
927ae344cc
|
@ -864,7 +864,7 @@ static int flex_generate_key(sc_card_t *card, struct sc_cardctl_cryptoflex_genke
|
|||
{
|
||||
struct sc_apdu apdu;
|
||||
u8 sbuf[SC_MAX_APDU_BUFFER_SIZE];
|
||||
int r, p2;
|
||||
int r, p1, p2;
|
||||
|
||||
switch (data->key_bits) {
|
||||
case 512: p2 = 0x40; break;
|
||||
|
@ -876,7 +876,9 @@ static int flex_generate_key(sc_card_t *card, struct sc_cardctl_cryptoflex_genke
|
|||
return SC_ERROR_INVALID_ARGUMENTS;
|
||||
}
|
||||
|
||||
sc_format_apdu(card, &apdu, SC_APDU_CASE_3_SHORT, 0x46, 0x01, p2);
|
||||
p1 = data->key_num;
|
||||
|
||||
sc_format_apdu(card, &apdu, SC_APDU_CASE_3_SHORT, 0x46, p1, p2);
|
||||
apdu.cla = 0xF0;
|
||||
apdu.data = sbuf;
|
||||
apdu.datalen = 4;
|
||||
|
|
|
@ -167,6 +167,7 @@ struct sc_cardctl_etoken_genkey_info {
|
|||
* Cryptoflex info
|
||||
*/
|
||||
struct sc_cardctl_cryptoflex_genkey_info {
|
||||
unsigned int key_num;
|
||||
unsigned int key_bits;
|
||||
unsigned long exponent;
|
||||
unsigned char * pubkey;
|
||||
|
|
|
@ -301,6 +301,7 @@ cflex_generate_key(sc_profile_t *profile, sc_card_t *card,
|
|||
memset(&args, 0, sizeof(args));
|
||||
args.exponent = 0x10001;
|
||||
args.key_bits = keybits;
|
||||
args.key_num = key_info->key_reference;
|
||||
r = sc_card_ctl(card, SC_CARDCTL_CRYPTOFLEX_GENERATE_KEY, &args);
|
||||
if (r < 0)
|
||||
goto out;
|
||||
|
|
Loading…
Reference in New Issue