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,
|
sc_pkcs15emu_add_pin(p15card, &auth_id,
|
||||||
pgp_pin_name[i], &path, i+1,
|
pgp_pin_name[i], &path, i+1,
|
||||||
SC_PKCS15_PIN_TYPE_ASCII_NUMERIC,
|
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++) {
|
for (i = 0; i < 3; i++) {
|
||||||
|
@ -165,7 +167,8 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card)
|
||||||
SC_PKCS15_TYPE_PRKEY_RSA,
|
SC_PKCS15_TYPE_PRKEY_RSA,
|
||||||
1024, prkey_usage[i],
|
1024, prkey_usage[i],
|
||||||
NULL, i,
|
NULL, i,
|
||||||
&auth_id);
|
&auth_id, SC_PKCS15_CO_FLAG_PRIVATE |
|
||||||
|
SC_PKCS15_CO_FLAG_MODIFIABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < 3; i++) {
|
||||||
|
@ -188,7 +191,7 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card)
|
||||||
pgp_key_name[i],
|
pgp_key_name[i],
|
||||||
SC_PKCS15_TYPE_PUBKEY_RSA,
|
SC_PKCS15_TYPE_PUBKEY_RSA,
|
||||||
1024, pubkey_usage[i],
|
1024, pubkey_usage[i],
|
||||||
&path, 0, &auth_id);
|
&path, 0, &auth_id, SC_PKCS15_CO_FLAG_MODIFIABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -237,7 +237,7 @@ sc_pkcs15emu_get_df(sc_pkcs15_card_t *p15card, int type)
|
||||||
int
|
int
|
||||||
sc_pkcs15emu_add_object(sc_pkcs15_card_t *p15card, int type,
|
sc_pkcs15emu_add_object(sc_pkcs15_card_t *p15card, int type,
|
||||||
const char *label, void *data,
|
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;
|
sc_pkcs15_object_t *obj;
|
||||||
int df_type;
|
int df_type;
|
||||||
|
@ -250,18 +250,15 @@ sc_pkcs15emu_add_object(sc_pkcs15_card_t *p15card, int type,
|
||||||
if (label)
|
if (label)
|
||||||
strncpy(obj->label, label, sizeof(obj->label)-1);
|
strncpy(obj->label, label, sizeof(obj->label)-1);
|
||||||
|
|
||||||
if (!(p15card->flags & SC_PKCS15_CARD_FLAG_READONLY))
|
obj->flags = obj_flags;
|
||||||
obj->flags |= SC_PKCS15_CO_FLAG_MODIFIABLE;
|
|
||||||
if (auth_id)
|
if (auth_id)
|
||||||
obj->auth_id = *auth_id;
|
obj->auth_id = *auth_id;
|
||||||
|
|
||||||
switch (type & SC_PKCS15_TYPE_CLASS_MASK) {
|
switch (type & SC_PKCS15_TYPE_CLASS_MASK) {
|
||||||
case SC_PKCS15_TYPE_AUTH:
|
case SC_PKCS15_TYPE_AUTH:
|
||||||
obj->flags |= SC_PKCS15_CO_FLAG_PRIVATE;
|
|
||||||
df_type = SC_PKCS15_AODF;
|
df_type = SC_PKCS15_AODF;
|
||||||
break;
|
break;
|
||||||
case SC_PKCS15_TYPE_PRKEY:
|
case SC_PKCS15_TYPE_PRKEY:
|
||||||
obj->flags |= SC_PKCS15_CO_FLAG_PRIVATE;
|
|
||||||
df_type = SC_PKCS15_PRKDF;
|
df_type = SC_PKCS15_PRKDF;
|
||||||
break;
|
break;
|
||||||
case SC_PKCS15_TYPE_PUBKEY:
|
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,
|
const sc_path_t *path, int ref, int type,
|
||||||
unsigned int min_length,
|
unsigned int min_length,
|
||||||
unsigned int max_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;
|
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,
|
return sc_pkcs15emu_add_object(p15card,
|
||||||
SC_PKCS15_TYPE_AUTH_PIN,
|
SC_PKCS15_TYPE_AUTH_PIN,
|
||||||
label, info, NULL);
|
label, info, NULL, obj_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -319,7 +316,7 @@ sc_pkcs15emu_add_cert(sc_pkcs15_card_t *p15card,
|
||||||
int type, int authority,
|
int type, int authority,
|
||||||
const sc_path_t *path,
|
const sc_path_t *path,
|
||||||
const sc_pkcs15_id_t *id,
|
const sc_pkcs15_id_t *id,
|
||||||
const char *label)
|
const char *label, int obj_flags)
|
||||||
{
|
{
|
||||||
/* const char *label = "Certificate"; */
|
/* const char *label = "Certificate"; */
|
||||||
sc_pkcs15_cert_info_t *info;
|
sc_pkcs15_cert_info_t *info;
|
||||||
|
@ -331,7 +328,8 @@ sc_pkcs15emu_add_cert(sc_pkcs15_card_t *p15card,
|
||||||
|
|
||||||
info->path = *path;
|
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
|
int
|
||||||
|
@ -340,7 +338,7 @@ sc_pkcs15emu_add_prkey(sc_pkcs15_card_t *p15card,
|
||||||
const char *label,
|
const char *label,
|
||||||
int type, unsigned int modulus_length, int usage,
|
int type, unsigned int modulus_length, int usage,
|
||||||
const sc_path_t *path, int ref,
|
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;
|
sc_pkcs15_prkey_info_t *info;
|
||||||
|
|
||||||
|
@ -359,7 +357,7 @@ sc_pkcs15emu_add_prkey(sc_pkcs15_card_t *p15card,
|
||||||
info->path = *path;
|
info->path = *path;
|
||||||
|
|
||||||
return sc_pkcs15emu_add_object(p15card,
|
return sc_pkcs15emu_add_object(p15card,
|
||||||
type, label, info, auth_id);
|
type, label, info, auth_id, obj_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -368,7 +366,7 @@ sc_pkcs15emu_add_pubkey(sc_pkcs15_card_t *p15card,
|
||||||
const char *label, int type,
|
const char *label, int type,
|
||||||
unsigned int modulus_length, int usage,
|
unsigned int modulus_length, int usage,
|
||||||
const sc_path_t *path, int ref,
|
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;
|
sc_pkcs15_pubkey_info_t *info;
|
||||||
|
|
||||||
|
@ -382,5 +380,6 @@ sc_pkcs15emu_add_pubkey(sc_pkcs15_card_t *p15card,
|
||||||
if (path)
|
if (path)
|
||||||
info->path = *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 type);
|
||||||
int sc_pkcs15emu_add_object(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 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,
|
int sc_pkcs15emu_add_pin(sc_pkcs15_card_t *p15card,
|
||||||
const sc_pkcs15_id_t *id, const char *label,
|
const sc_pkcs15_id_t *id, const char *label,
|
||||||
const sc_path_t *path, int ref, int type,
|
const sc_path_t *path, int ref, int type,
|
||||||
unsigned int min_length, unsigned int max_length,
|
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 sc_pkcs15emu_add_cert(sc_pkcs15_card_t *p15card, int type,
|
||||||
int authority, const sc_path_t *path,
|
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,
|
int sc_pkcs15emu_add_prkey(sc_pkcs15_card_t *p15card,
|
||||||
const sc_pkcs15_id_t *id, const char *label,
|
const sc_pkcs15_id_t *id, const char *label,
|
||||||
int type, unsigned int modulus_length, int usage,
|
int type, unsigned int modulus_length, int usage,
|
||||||
const sc_path_t *path, int ref,
|
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,
|
int sc_pkcs15emu_add_pubkey(sc_pkcs15_card_t *p15card,
|
||||||
const sc_pkcs15_id_t *id, const char *label,
|
const sc_pkcs15_id_t *id, const char *label,
|
||||||
int type, unsigned int modulus_length, int usage,
|
int type, unsigned int modulus_length, int usage,
|
||||||
const sc_path_t *path, int ref,
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue