fix some warnings
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@2858 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
parent
0a9912233d
commit
126595bb07
|
@ -76,12 +76,12 @@ enum {
|
||||||
|
|
||||||
struct piv_object {
|
struct piv_object {
|
||||||
int enumtag;
|
int enumtag;
|
||||||
char * name;
|
const char * name;
|
||||||
char * oidstring;
|
const char * oidstring;
|
||||||
int tag_len;
|
size_t tag_len;
|
||||||
u8 tag_value[3];
|
u8 tag_value[3];
|
||||||
u8 containerid[2]; /* will use as relative paths for simulation */
|
u8 containerid[2]; /* will use as relative paths for simulation */
|
||||||
int maxlen; /* advisory, used with select_file, but we can read larger */
|
size_t maxlen; /* advisory, used with select_file, but we can read larger */
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct piv_object piv_objects[] = {
|
static struct piv_object piv_objects[] = {
|
||||||
|
@ -131,7 +131,7 @@ static struct sc_card_driver piv_drv = {
|
||||||
* oterwise, store tag and length at **ptr, and increment
|
* oterwise, store tag and length at **ptr, and increment
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int put_tag_and_len(u8 tag, size_t len, u8 **ptr)
|
static size_t put_tag_and_len(unsigned int tag, size_t len, u8 **ptr)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
u8 *p;
|
u8 *p;
|
||||||
|
@ -146,7 +146,7 @@ static int put_tag_and_len(u8 tag, size_t len, u8 **ptr)
|
||||||
|
|
||||||
if (ptr) {
|
if (ptr) {
|
||||||
p = *ptr;
|
p = *ptr;
|
||||||
*p++ = tag;
|
*p++ = (u8)tag;
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 2:
|
case 2:
|
||||||
*p++ = len;
|
*p++ = len;
|
||||||
|
@ -515,7 +515,7 @@ static int piv_get_data(sc_card_t * card, unsigned int enumtag,
|
||||||
u8 *p;
|
u8 *p;
|
||||||
int r = 0;
|
int r = 0;
|
||||||
u8 tagbuf[8];
|
u8 tagbuf[8];
|
||||||
int tag_len;
|
size_t tag_len;
|
||||||
|
|
||||||
SC_FUNC_CALLED(card->ctx,1);
|
SC_FUNC_CALLED(card->ctx,1);
|
||||||
sc_debug(card->ctx, "get_data: tag=%d \n", enumtag);
|
sc_debug(card->ctx, "get_data: tag=%d \n", enumtag);
|
||||||
|
@ -694,18 +694,17 @@ static int piv_read_binary(sc_card_t *card, unsigned int idx,
|
||||||
static int piv_put_data(sc_card_t *card, unsigned int tag,
|
static int piv_put_data(sc_card_t *card, unsigned int tag,
|
||||||
const u8 *buf, size_t buf_len)
|
const u8 *buf, size_t buf_len)
|
||||||
{
|
{
|
||||||
// struct piv_private_data * priv = (struct piv_private_data *) card->drv_data;
|
|
||||||
int r;
|
int r;
|
||||||
u8 * sbuf;
|
u8 * sbuf;
|
||||||
size_t sbuflen;
|
size_t sbuflen;
|
||||||
u8 * p;
|
u8 * p;
|
||||||
int tag_len;
|
size_t tag_len;
|
||||||
|
|
||||||
SC_FUNC_CALLED(card->ctx,1);
|
SC_FUNC_CALLED(card->ctx,1);
|
||||||
|
|
||||||
tag_len = piv_objects[tag].tag_len;
|
tag_len = piv_objects[tag].tag_len;
|
||||||
sbuflen = put_tag_and_len(0x5c, tag_len, NULL) + buf_len;
|
sbuflen = put_tag_and_len(0x5c, tag_len, NULL) + buf_len;
|
||||||
if (!(sbuf = (u8 *) malloc(sbuflen)))
|
if (!(sbuf = (u8 *) malloc(sbuflen)))
|
||||||
return SC_ERROR_OUT_OF_MEMORY;
|
return SC_ERROR_OUT_OF_MEMORY;
|
||||||
|
|
||||||
p = sbuf;
|
p = sbuf;
|
||||||
|
@ -851,10 +850,10 @@ err:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int piv_general_mutual_authenticate(sc_card_t *card,
|
static int piv_general_mutual_authenticate(sc_card_t *card,
|
||||||
u8 key_ref, u8 alg_id)
|
unsigned int key_ref, unsigned int alg_id)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
int N;
|
size_t N;
|
||||||
int locked = 0;
|
int locked = 0;
|
||||||
u8 *rbuf = NULL;
|
u8 *rbuf = NULL;
|
||||||
size_t rbuflen;
|
size_t rbuflen;
|
||||||
|
@ -904,7 +903,7 @@ static int piv_general_mutual_authenticate(sc_card_t *card,
|
||||||
*p++ = 0x7c;
|
*p++ = 0x7c;
|
||||||
*p++ = 2 * N + 4;
|
*p++ = 2 * N + 4;
|
||||||
*p++ = 0x80;
|
*p++ = 0x80;
|
||||||
*p++ = N;
|
*p++ = (u8)N;
|
||||||
|
|
||||||
DES_set_key((DES_cblock *) &k1, &ks1);
|
DES_set_key((DES_cblock *) &k1, &ks1);
|
||||||
DES_set_key((DES_cblock *) &k2, &ks2);
|
DES_set_key((DES_cblock *) &k2, &ks2);
|
||||||
|
@ -957,7 +956,7 @@ err:
|
||||||
}
|
}
|
||||||
|
|
||||||
static int piv_general_external_authenticate(sc_card_t *card,
|
static int piv_general_external_authenticate(sc_card_t *card,
|
||||||
u8 key_ref, u8 alg_id)
|
unsigned int key_ref, unsigned int alg_id)
|
||||||
{
|
{
|
||||||
struct piv_private_data * priv = (struct piv_private_data *) card->drv_data;
|
struct piv_private_data * priv = (struct piv_private_data *) card->drv_data;
|
||||||
int r;
|
int r;
|
||||||
|
|
|
@ -37,6 +37,9 @@
|
||||||
#define TC_CARDOS_GLOBALPIN 0x3000
|
#define TC_CARDOS_GLOBALPIN 0x3000
|
||||||
#define TC_CARDOS_PIN_MASK 0x3000
|
#define TC_CARDOS_PIN_MASK 0x3000
|
||||||
|
|
||||||
|
int sc_pkcs15emu_tccardos_init_ex(sc_pkcs15_card_t *p15card,
|
||||||
|
sc_pkcs15emu_opt_t *opts);
|
||||||
|
|
||||||
static int read_file(struct sc_card *card, const char *file, u8 *buf,
|
static int read_file(struct sc_card *card, const char *file, u8 *buf,
|
||||||
size_t *len)
|
size_t *len)
|
||||||
{
|
{
|
||||||
|
@ -114,7 +117,7 @@ static int create_cert_obj(sc_pkcs15_card_t *p15card, int fileId)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int create_pkey_obj(sc_pkcs15_card_t *p15card, int cert, int key_descr,
|
static int create_pkey_obj(sc_pkcs15_card_t *p15card, int cert, int key_descr,
|
||||||
u8 keyId, u8 pinId)
|
unsigned int keyId, unsigned int pinId)
|
||||||
{
|
{
|
||||||
sc_pkcs15_object_t p15obj;
|
sc_pkcs15_object_t p15obj;
|
||||||
sc_pkcs15_prkey_info_t pinfo;
|
sc_pkcs15_prkey_info_t pinfo;
|
||||||
|
@ -127,7 +130,7 @@ static int create_pkey_obj(sc_pkcs15_card_t *p15card, int cert, int key_descr,
|
||||||
pinfo.id.value[1] = cert & 0xff;
|
pinfo.id.value[1] = cert & 0xff;
|
||||||
pinfo.id.len = 2;
|
pinfo.id.len = 2;
|
||||||
pinfo.native = 1;
|
pinfo.native = 1;
|
||||||
pinfo.key_reference = keyId;
|
pinfo.key_reference = (u8)keyId;
|
||||||
pinfo.modulus_length = 1024; /* XXX */
|
pinfo.modulus_length = 1024; /* XXX */
|
||||||
pinfo.access_flags = SC_PKCS15_PRKEY_ACCESS_NEVEREXTRACTABLE;
|
pinfo.access_flags = SC_PKCS15_PRKEY_ACCESS_NEVEREXTRACTABLE;
|
||||||
pinfo.usage = 0;
|
pinfo.usage = 0;
|
||||||
|
@ -147,7 +150,7 @@ static int create_pkey_obj(sc_pkcs15_card_t *p15card, int cert, int key_descr,
|
||||||
/* the common object attributes */
|
/* the common object attributes */
|
||||||
sprintf(p15obj.label, "SK.CH.%s", get_service(cert));
|
sprintf(p15obj.label, "SK.CH.%s", get_service(cert));
|
||||||
if (pinId && (key_descr & TC_CARDOS_PIN_MASK)) {
|
if (pinId && (key_descr & TC_CARDOS_PIN_MASK)) {
|
||||||
p15obj.auth_id.value[0] = pinId;
|
p15obj.auth_id.value[0] = (u8)pinId;
|
||||||
p15obj.auth_id.len = 1;
|
p15obj.auth_id.len = 1;
|
||||||
}
|
}
|
||||||
p15obj.flags = SC_PKCS15_CO_FLAG_PRIVATE;
|
p15obj.flags = SC_PKCS15_CO_FLAG_PRIVATE;
|
||||||
|
@ -158,7 +161,7 @@ static int create_pkey_obj(sc_pkcs15_card_t *p15card, int cert, int key_descr,
|
||||||
}
|
}
|
||||||
|
|
||||||
static int create_pin_obj(sc_pkcs15_card_t *p15card, int cert,
|
static int create_pin_obj(sc_pkcs15_card_t *p15card, int cert,
|
||||||
int key_descr, u8 pinId)
|
int key_descr, unsigned int pinId)
|
||||||
{
|
{
|
||||||
sc_pkcs15_object_t p15obj;
|
sc_pkcs15_object_t p15obj;
|
||||||
sc_pkcs15_pin_info_t ainfo;
|
sc_pkcs15_pin_info_t ainfo;
|
||||||
|
@ -167,9 +170,9 @@ static int create_pin_obj(sc_pkcs15_card_t *p15card, int cert,
|
||||||
memset(&p15obj, 0, sizeof(p15obj));
|
memset(&p15obj, 0, sizeof(p15obj));
|
||||||
memset(&ainfo, 0, sizeof(ainfo));
|
memset(&ainfo, 0, sizeof(ainfo));
|
||||||
/* the authentication object attributes */
|
/* the authentication object attributes */
|
||||||
ainfo.auth_id.value[0] = pinId;
|
ainfo.auth_id.value[0] = (u8)pinId;
|
||||||
ainfo.auth_id.len = 1;
|
ainfo.auth_id.len = 1;
|
||||||
ainfo.reference = pinId;
|
ainfo.reference = (u8)pinId;
|
||||||
ainfo.flags = SC_PKCS15_PIN_FLAG_EXCHANGE_REF_DATA;
|
ainfo.flags = SC_PKCS15_PIN_FLAG_EXCHANGE_REF_DATA;
|
||||||
if ((key_descr & TC_CARDOS_PIN_MASK) == TC_CARDOS_LOCALPIN)
|
if ((key_descr & TC_CARDOS_PIN_MASK) == TC_CARDOS_LOCALPIN)
|
||||||
ainfo.flags |= SC_PKCS15_PIN_FLAG_LOCAL;
|
ainfo.flags |= SC_PKCS15_PIN_FLAG_LOCAL;
|
||||||
|
|
Loading…
Reference in New Issue