include common object attributes in the sc_pkcs15emu_add_* api
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@1781 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
parent
475a29de67
commit
02cbe02bc2
|
@ -141,7 +141,9 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card)
|
|||
sc_pkcs15emu_add_pin(p15card, &auth_id,
|
||||
pgp_pin_name[i], &path, i+1,
|
||||
SC_PKCS15_PIN_TYPE_ASCII_NUMERIC,
|
||||
0, buffer[1+i], flags, buffer[4+i], 0);
|
||||
0, buffer[1+i], flags, buffer[4+i], 0,
|
||||
SC_PKCS15_CO_FLAG_MODIFIABLE |
|
||||
SC_PKCS15_CO_FLAG_PRIVATE);
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
|
@ -165,7 +167,8 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card)
|
|||
SC_PKCS15_TYPE_PRKEY_RSA,
|
||||
1024, prkey_usage[i],
|
||||
NULL, i,
|
||||
&auth_id);
|
||||
&auth_id, SC_PKCS15_CO_FLAG_PRIVATE |
|
||||
SC_PKCS15_CO_FLAG_MODIFIABLE);
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
|
@ -188,7 +191,7 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card)
|
|||
pgp_key_name[i],
|
||||
SC_PKCS15_TYPE_PUBKEY_RSA,
|
||||
1024, pubkey_usage[i],
|
||||
&path, 0, &auth_id);
|
||||
&path, 0, &auth_id, SC_PKCS15_CO_FLAG_MODIFIABLE);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -237,7 +237,7 @@ sc_pkcs15emu_get_df(sc_pkcs15_card_t *p15card, int type)
|
|||
int
|
||||
sc_pkcs15emu_add_object(sc_pkcs15_card_t *p15card, int type,
|
||||
const char *label, void *data,
|
||||
const sc_pkcs15_id_t *auth_id)
|
||||
const sc_pkcs15_id_t *auth_id, int obj_flags)
|
||||
{
|
||||
sc_pkcs15_object_t *obj;
|
||||
int df_type;
|
||||
|
@ -250,18 +250,15 @@ sc_pkcs15emu_add_object(sc_pkcs15_card_t *p15card, int type,
|
|||
if (label)
|
||||
strncpy(obj->label, label, sizeof(obj->label)-1);
|
||||
|
||||
if (!(p15card->flags & SC_PKCS15_CARD_FLAG_READONLY))
|
||||
obj->flags |= SC_PKCS15_CO_FLAG_MODIFIABLE;
|
||||
obj->flags = obj_flags;
|
||||
if (auth_id)
|
||||
obj->auth_id = *auth_id;
|
||||
|
||||
switch (type & SC_PKCS15_TYPE_CLASS_MASK) {
|
||||
case SC_PKCS15_TYPE_AUTH:
|
||||
obj->flags |= SC_PKCS15_CO_FLAG_PRIVATE;
|
||||
df_type = SC_PKCS15_AODF;
|
||||
break;
|
||||
case SC_PKCS15_TYPE_PRKEY:
|
||||
obj->flags |= SC_PKCS15_CO_FLAG_PRIVATE;
|
||||
df_type = SC_PKCS15_PRKDF;
|
||||
break;
|
||||
case SC_PKCS15_TYPE_PUBKEY:
|
||||
|
@ -288,7 +285,7 @@ sc_pkcs15emu_add_pin(sc_pkcs15_card_t *p15card,
|
|||
const sc_path_t *path, int ref, int type,
|
||||
unsigned int min_length,
|
||||
unsigned int max_length,
|
||||
int flags, int tries_left, const char pad_char)
|
||||
int flags, int tries_left, const char pad_char, int obj_flags)
|
||||
{
|
||||
sc_pkcs15_pin_info_t *info;
|
||||
|
||||
|
@ -311,7 +308,7 @@ sc_pkcs15emu_add_pin(sc_pkcs15_card_t *p15card,
|
|||
|
||||
return sc_pkcs15emu_add_object(p15card,
|
||||
SC_PKCS15_TYPE_AUTH_PIN,
|
||||
label, info, NULL);
|
||||
label, info, NULL, obj_flags);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -319,7 +316,7 @@ sc_pkcs15emu_add_cert(sc_pkcs15_card_t *p15card,
|
|||
int type, int authority,
|
||||
const sc_path_t *path,
|
||||
const sc_pkcs15_id_t *id,
|
||||
const char *label)
|
||||
const char *label, int obj_flags)
|
||||
{
|
||||
/* const char *label = "Certificate"; */
|
||||
sc_pkcs15_cert_info_t *info;
|
||||
|
@ -331,7 +328,8 @@ sc_pkcs15emu_add_cert(sc_pkcs15_card_t *p15card,
|
|||
|
||||
info->path = *path;
|
||||
|
||||
return sc_pkcs15emu_add_object(p15card, type, label, info, NULL);
|
||||
return sc_pkcs15emu_add_object(p15card, type, label, info, NULL,
|
||||
obj_flags);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -340,7 +338,7 @@ sc_pkcs15emu_add_prkey(sc_pkcs15_card_t *p15card,
|
|||
const char *label,
|
||||
int type, unsigned int modulus_length, int usage,
|
||||
const sc_path_t *path, int ref,
|
||||
const sc_pkcs15_id_t *auth_id)
|
||||
const sc_pkcs15_id_t *auth_id, int obj_flags)
|
||||
{
|
||||
sc_pkcs15_prkey_info_t *info;
|
||||
|
||||
|
@ -359,7 +357,7 @@ sc_pkcs15emu_add_prkey(sc_pkcs15_card_t *p15card,
|
|||
info->path = *path;
|
||||
|
||||
return sc_pkcs15emu_add_object(p15card,
|
||||
type, label, info, auth_id);
|
||||
type, label, info, auth_id, obj_flags);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -368,7 +366,7 @@ sc_pkcs15emu_add_pubkey(sc_pkcs15_card_t *p15card,
|
|||
const char *label, int type,
|
||||
unsigned int modulus_length, int usage,
|
||||
const sc_path_t *path, int ref,
|
||||
const sc_pkcs15_id_t *auth_id)
|
||||
const sc_pkcs15_id_t *auth_id, int obj_flags)
|
||||
{
|
||||
sc_pkcs15_pubkey_info_t *info;
|
||||
|
||||
|
@ -382,5 +380,6 @@ sc_pkcs15emu_add_pubkey(sc_pkcs15_card_t *p15card,
|
|||
if (path)
|
||||
info->path = *path;
|
||||
|
||||
return sc_pkcs15emu_add_object(p15card, type, label, info, auth_id);
|
||||
return sc_pkcs15emu_add_object(p15card, type, label, info, auth_id,
|
||||
obj_flags);
|
||||
}
|
||||
|
|
|
@ -607,25 +607,28 @@ sc_pkcs15_df_t *sc_pkcs15emu_get_df(sc_pkcs15_card_t *p15card,
|
|||
int type);
|
||||
int sc_pkcs15emu_add_object(sc_pkcs15_card_t *p15card, int type,
|
||||
const char *label, void *data,
|
||||
const sc_pkcs15_id_t *auth_id);
|
||||
const sc_pkcs15_id_t *auth_id, int obj_flags);
|
||||
int sc_pkcs15emu_add_pin(sc_pkcs15_card_t *p15card,
|
||||
const sc_pkcs15_id_t *id, const char *label,
|
||||
const sc_path_t *path, int ref, int type,
|
||||
unsigned int min_length, unsigned int max_length,
|
||||
int flags, int tries_left, const char pad_char);
|
||||
int flags, int tries_left, const char pad_char,
|
||||
int obj_flags);
|
||||
int sc_pkcs15emu_add_cert(sc_pkcs15_card_t *p15card, int type,
|
||||
int authority, const sc_path_t *path,
|
||||
const sc_pkcs15_id_t *id, const char *label);
|
||||
const sc_pkcs15_id_t *id, const char *label,
|
||||
int obj_flags);
|
||||
int sc_pkcs15emu_add_prkey(sc_pkcs15_card_t *p15card,
|
||||
const sc_pkcs15_id_t *id, const char *label,
|
||||
int type, unsigned int modulus_length, int usage,
|
||||
const sc_path_t *path, int ref,
|
||||
const sc_pkcs15_id_t *auth_id);
|
||||
const sc_pkcs15_id_t *auth_id,
|
||||
int obj_flags);
|
||||
int sc_pkcs15emu_add_pubkey(sc_pkcs15_card_t *p15card,
|
||||
const sc_pkcs15_id_t *id, const char *label,
|
||||
int type, unsigned int modulus_length, int usage,
|
||||
const sc_path_t *path, int ref,
|
||||
const sc_pkcs15_id_t *auth_id);
|
||||
const sc_pkcs15_id_t *auth_id, int obj_flags);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue