cleanup
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@2460 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
parent
d443d373a4
commit
4dd3c3f382
|
@ -132,7 +132,7 @@ static long t1, t2, tot_read = 0, tot_dur = 0, dur;
|
||||||
#define BELPIC_KEY_REF_NONREP 0x83
|
#define BELPIC_KEY_REF_NONREP 0x83
|
||||||
|
|
||||||
/* Used for a trick in select file and read binary */
|
/* Used for a trick in select file and read binary */
|
||||||
static size_t next_idx = -1;
|
static size_t next_idx = (size_t)-1;
|
||||||
|
|
||||||
static struct sc_atr_table belpic_atrs[] = {
|
static struct sc_atr_table belpic_atrs[] = {
|
||||||
/* Applet V1.1 */
|
/* Applet V1.1 */
|
||||||
|
@ -817,7 +817,7 @@ static int get_language(sc_card_t *card)
|
||||||
|
|
||||||
#endif /* GET_LANG_FROM_CARD */
|
#endif /* GET_LANG_FROM_CARD */
|
||||||
|
|
||||||
static scconf_block *get_belpic_conf(sc_context_t *ctx, char *name)
|
static scconf_block *get_belpic_conf(sc_context_t *ctx, const char *name)
|
||||||
{
|
{
|
||||||
scconf_block *conf_block = NULL, **blocks;
|
scconf_block *conf_block = NULL, **blocks;
|
||||||
int i;
|
int i;
|
||||||
|
@ -1089,7 +1089,7 @@ static int belpic_select_file(sc_card_t *card,
|
||||||
if (r)
|
if (r)
|
||||||
SC_FUNC_RETURN(card->ctx, 2, r);
|
SC_FUNC_RETURN(card->ctx, 2, r);
|
||||||
|
|
||||||
next_idx = -1; /* reset */
|
next_idx = (size_t)-1; /* reset */
|
||||||
|
|
||||||
if (file_out != NULL) {
|
if (file_out != NULL) {
|
||||||
file = sc_file_new();
|
file = sc_file_new();
|
||||||
|
|
|
@ -104,7 +104,7 @@ static int my_pin_cmd(sc_card_t * card, struct sc_pin_cmd_data * data,
|
||||||
memset(newpin, 0xff, sizeof(newpin));
|
memset(newpin, 0xff, sizeof(newpin));
|
||||||
|
|
||||||
if (data->pin1.data && data->pin1.len < 8 && data->pin1.len > 0) {
|
if (data->pin1.data && data->pin1.len < 8 && data->pin1.len > 0) {
|
||||||
memcpy(newpin,data->pin1.data, data->pin1.len);
|
memcpy(newpin,data->pin1.data, (size_t)data->pin1.len);
|
||||||
newpin[data->pin1.len] = 0x00;
|
newpin[data->pin1.len] = 0x00;
|
||||||
|
|
||||||
sc_debug(card->ctx, "pin len=%d", data->pin1.len);
|
sc_debug(card->ctx, "pin len=%d", data->pin1.len);
|
||||||
|
@ -123,9 +123,6 @@ static int my_pin_cmd(sc_card_t * card, struct sc_pin_cmd_data * data,
|
||||||
}
|
}
|
||||||
|
|
||||||
SC_FUNC_RETURN(card->ctx, 2, r);
|
SC_FUNC_RETURN(card->ctx, 2, r);
|
||||||
|
|
||||||
return r;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -203,7 +200,7 @@ static int sc_pkcs15emu_gemsafe_init(sc_pkcs15_card_t *p15card)
|
||||||
|
|
||||||
u8 sysrec[7];
|
u8 sysrec[7];
|
||||||
int num_keyinfo = 0;
|
int num_keyinfo = 0;
|
||||||
keyinfo keyinfo[8]; /* will loook for 8 keys */
|
keyinfo kinfo[8]; /* will loook for 8 keys */
|
||||||
u8 modulus_buf[ 1 + 1024 / 8]; /* tag+modulus */
|
u8 modulus_buf[ 1 + 1024 / 8]; /* tag+modulus */
|
||||||
u8 *cp;
|
u8 *cp;
|
||||||
char buf[256];
|
char buf[256];
|
||||||
|
@ -269,26 +266,26 @@ static int sc_pkcs15emu_gemsafe_init(sc_pkcs15_card_t *p15card)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (sysrec[1]) {
|
switch (sysrec[1]) {
|
||||||
case 0x00: keyinfo[num_keyinfo].modulus_len = 512 / 8; break;
|
case 0x00: kinfo[num_keyinfo].modulus_len = 512 / 8; break;
|
||||||
case 0x10: keyinfo[num_keyinfo].modulus_len = 768 / 8; break;
|
case 0x10: kinfo[num_keyinfo].modulus_len = 768 / 8; break;
|
||||||
case 0x11: keyinfo[num_keyinfo].modulus_len = 1024 / 8; break;
|
case 0x11: kinfo[num_keyinfo].modulus_len = 1024 / 8; break;
|
||||||
default:
|
default:
|
||||||
sc_error(card->ctx, "Unsupported modulus length");
|
sc_error(card->ctx, "Unsupported modulus length");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
keyinfo[num_keyinfo].fileid = i;
|
kinfo[num_keyinfo].fileid = i;
|
||||||
sc_pkcs15_format_id("NONE", &keyinfo[num_keyinfo].id);
|
sc_pkcs15_format_id("NONE", &kinfo[num_keyinfo].id);
|
||||||
|
|
||||||
sc_debug(card->ctx,"reading modulus");
|
sc_debug(card->ctx,"reading modulus");
|
||||||
r = sc_read_record(card, 2, modulus_buf,
|
r = sc_read_record(card, 2, modulus_buf,
|
||||||
keyinfo[num_keyinfo].modulus_len+1, SC_RECORD_BY_REC_NR);
|
kinfo[num_keyinfo].modulus_len+1, SC_RECORD_BY_REC_NR);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* need to reverse the modulus skiping the tag */
|
/* need to reverse the modulus skiping the tag */
|
||||||
j = keyinfo[num_keyinfo].modulus_len;
|
j = kinfo[num_keyinfo].modulus_len;
|
||||||
cp = keyinfo[num_keyinfo].modulus;
|
cp = kinfo[num_keyinfo].modulus;
|
||||||
while (j--)
|
while (j--)
|
||||||
*cp++ = modulus_buf[j + 1];
|
*cp++ = modulus_buf[j + 1];
|
||||||
num_keyinfo++;
|
num_keyinfo++;
|
||||||
|
@ -401,10 +398,10 @@ static int sc_pkcs15emu_gemsafe_init(sc_pkcs15_card_t *p15card)
|
||||||
return SC_ERROR_INTERNAL;
|
return SC_ERROR_INTERNAL;
|
||||||
|
|
||||||
for (j = 0; j < num_keyinfo; j++) {
|
for (j = 0; j < num_keyinfo; j++) {
|
||||||
if (cert_out->key.u.rsa.modulus.len == keyinfo[j].modulus_len &&
|
if (cert_out->key.u.rsa.modulus.len == kinfo[j].modulus_len &&
|
||||||
memcmp(cert_out->key.u.rsa.modulus.data,
|
memcmp(cert_out->key.u.rsa.modulus.data,
|
||||||
&keyinfo[j].modulus, cert_out->key.u.rsa.modulus.len) == 0) {
|
&kinfo[j].modulus, cert_out->key.u.rsa.modulus.len) == 0) {
|
||||||
memcpy(&keyinfo[j].id, &cert_info.id, sizeof(sc_pkcs15_id_t));
|
memcpy(&kinfo[j].id, &cert_info.id, sizeof(sc_pkcs15_id_t));
|
||||||
sc_debug(card->ctx, "found match");
|
sc_debug(card->ctx, "found match");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -478,11 +475,11 @@ static int sc_pkcs15emu_gemsafe_init(sc_pkcs15_card_t *p15card)
|
||||||
/* This allows us to have a card with a key but no cert */
|
/* This allows us to have a card with a key but no cert */
|
||||||
|
|
||||||
for (j = 0; j < num_keyinfo; j++) {
|
for (j = 0; j < num_keyinfo; j++) {
|
||||||
if (sc_pkcs15_compare_id(&keyinfo[j].id, &prkey_info.id)) {
|
if (sc_pkcs15_compare_id(&kinfo[j].id, &prkey_info.id)) {
|
||||||
sc_debug(card->ctx, "found key in file %d for id %d",
|
sc_debug(card->ctx, "found key in file %d for id %d",
|
||||||
keyinfo[j].fileid, prkey_info.id);
|
kinfo[j].fileid, prkey_info.id);
|
||||||
prkey_info.path.value[4] = keyinfo[j].fileid >> 8;
|
prkey_info.path.value[4] = kinfo[j].fileid >> 8;
|
||||||
prkey_info.path.value[5] = keyinfo[j].fileid & 0xff;
|
prkey_info.path.value[5] = kinfo[j].fileid & 0xff;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card)
|
||||||
|
|
||||||
if ((r = read_file(card, "004f", buffer, sizeof(buffer))) < 0)
|
if ((r = read_file(card, "004f", buffer, sizeof(buffer))) < 0)
|
||||||
goto failed;
|
goto failed;
|
||||||
sc_bin_to_hex(buffer, r, string, sizeof(string), 0);
|
sc_bin_to_hex(buffer, (size_t)r, string, sizeof(string), 0);
|
||||||
set_string(&p15card->serial_number, string);
|
set_string(&p15card->serial_number, string);
|
||||||
p15card->version = (buffer[6] << 8) | buffer[7];
|
p15card->version = (buffer[6] << 8) | buffer[7];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue