initialize sc_pkcs15init_operations at compile time

git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@2480 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
nils 2005-08-10 21:31:18 +00:00
parent f8d6634339
commit 4d48735d10
7 changed files with 86 additions and 104 deletions

View File

@ -855,46 +855,41 @@ cyberflex_encode_public_key(sc_profile_t *profile, sc_card_t *card,
return 0;
}
static struct sc_pkcs15init_operations sc_pkcs15init_cryptoflex_operations;
static struct sc_pkcs15init_operations sc_pkcs15init_cyberflex_operations;
static struct sc_pkcs15init_operations sc_pkcs15init_cryptoflex_operations = {
.erase_card = cflex_erase_card,
.init_card = cryptoflex_init_card,
.create_dir = cflex_create_dir,
.create_domain = cflex_create_domain,
.select_pin_reference = cflex_select_pin_reference,
.create_pin = cflex_create_pin,
.create_key = cflex_create_key,
.generate_key = cflex_generate_key,
.store_key = cflex_store_key,
.encode_private_key = cryptoflex_encode_private_key,
.encode_public_key = cryptoflex_encode_public_key
};
static struct sc_pkcs15init_operations sc_pkcs15init_cyberflex_operations = {
.erase_card = cflex_erase_card,
.create_dir = cflex_create_dir,
.create_domain = cflex_create_domain,
.select_pin_reference = cflex_select_pin_reference,
.create_pin = cflex_create_pin,
.create_key = cflex_create_key,
.generate_key = cflex_generate_key,
.store_key = cflex_store_key,
.encode_private_key = cyberflex_encode_private_key,
.encode_public_key = cyberflex_encode_public_key
};
struct sc_pkcs15init_operations *
sc_pkcs15init_get_cryptoflex_ops(void)
{
struct sc_pkcs15init_operations *ops;
ops = &sc_pkcs15init_cryptoflex_operations;
ops->erase_card = cflex_erase_card;
ops->init_card = cryptoflex_init_card;
ops->create_dir = cflex_create_dir;
ops->create_domain = cflex_create_domain;
ops->select_pin_reference = cflex_select_pin_reference;
ops->create_pin = cflex_create_pin;
ops->create_key = cflex_create_key;
ops->generate_key = cflex_generate_key;
ops->store_key = cflex_store_key;
ops->encode_private_key = cryptoflex_encode_private_key;
ops->encode_public_key = cryptoflex_encode_public_key;
return ops;
return &sc_pkcs15init_cryptoflex_operations;
}
struct sc_pkcs15init_operations *
sc_pkcs15init_get_cyberflex_ops(void)
{
struct sc_pkcs15init_operations *ops;
ops = &sc_pkcs15init_cyberflex_operations;
ops->erase_card = cflex_erase_card;
ops->create_dir = cflex_create_dir;
ops->create_domain = cflex_create_domain;
ops->select_pin_reference = cflex_select_pin_reference;
ops->create_pin = cflex_create_pin;
ops->create_key = cflex_create_key;
ops->generate_key = cflex_generate_key;
ops->store_key = cflex_store_key;
ops->encode_private_key = cyberflex_encode_private_key;
ops->encode_public_key = cyberflex_encode_public_key;
return ops;
return &sc_pkcs15init_cyberflex_operations;
}

View File

@ -611,19 +611,19 @@ etoken_extract_pubkey(sc_card_t *card, int nr, u8 tag,
return 0;
}
static struct sc_pkcs15init_operations sc_pkcs15init_etoken_operations;
static struct sc_pkcs15init_operations sc_pkcs15init_etoken_operations = {
.erase_card = etoken_erase,
.create_dir = etoken_create_dir,
.select_pin_reference = etoken_select_pin_reference,
.create_pin = etoken_create_pin,
.select_key_reference = etoken_select_key_reference,
.create_key = etoken_create_key,
.store_key = etoken_store_key,
.generate_key = etoken_generate_key
};
struct sc_pkcs15init_operations *
sc_pkcs15init_get_etoken_ops(void)
{
sc_pkcs15init_etoken_operations.erase_card = etoken_erase;
sc_pkcs15init_etoken_operations.create_dir = etoken_create_dir;
sc_pkcs15init_etoken_operations.select_pin_reference = etoken_select_pin_reference;
sc_pkcs15init_etoken_operations.create_pin = etoken_create_pin;
sc_pkcs15init_etoken_operations.select_key_reference = etoken_select_key_reference;
sc_pkcs15init_etoken_operations.create_key = etoken_create_key;
sc_pkcs15init_etoken_operations.store_key = etoken_store_key;
sc_pkcs15init_etoken_operations.generate_key = etoken_generate_key;
return &sc_pkcs15init_etoken_operations;
}

View File

@ -1116,17 +1116,17 @@ gpk_read_rsa_key(sc_card_t *card, struct sc_pkcs15_pubkey_rsa *rsa)
return 0;
}
static struct sc_pkcs15init_operations sc_pkcs15init_gpk_operations;
static struct sc_pkcs15init_operations sc_pkcs15init_gpk_operations = {
.erase_card = gpk_erase_card,
.create_dir = gpk_create_dir,
.select_pin_reference = gpk_select_pin_reference,
.create_pin = gpk_create_pin,
.create_key = gpk_create_key,
.generate_key = gpk_generate_key,
.store_key = gpk_store_key
};
struct sc_pkcs15init_operations *sc_pkcs15init_get_gpk_ops(void)
{
sc_pkcs15init_gpk_operations.erase_card = gpk_erase_card;
sc_pkcs15init_gpk_operations.create_dir = gpk_create_dir;
sc_pkcs15init_gpk_operations.select_pin_reference = gpk_select_pin_reference;
sc_pkcs15init_gpk_operations.create_pin = gpk_create_pin;
sc_pkcs15init_gpk_operations.create_key = gpk_create_key;
sc_pkcs15init_gpk_operations.generate_key = gpk_generate_key;
sc_pkcs15init_gpk_operations.store_key = gpk_store_key;
return &sc_pkcs15init_gpk_operations;
}

View File

@ -343,18 +343,18 @@ jcop_generate_key(sc_profile_t *profile, sc_card_t *card,
static struct sc_pkcs15init_operations sc_pkcs15init_jcop_operations;
static struct sc_pkcs15init_operations sc_pkcs15init_jcop_operations = {
.erase_card = jcop_erase_card,
.init_app = jcop_init_app,
.select_pin_reference = jcop_select_pin_reference,
.create_pin = jcop_create_pin,
.create_key = jcop_create_key,
.store_key = jcop_store_key,
.generate_key = jcop_generate_key
};
struct sc_pkcs15init_operations *sc_pkcs15init_get_jcop_ops(void)
{
sc_pkcs15init_jcop_operations.erase_card = jcop_erase_card;
sc_pkcs15init_jcop_operations.init_app = jcop_init_app;
sc_pkcs15init_jcop_operations.select_pin_reference = jcop_select_pin_reference;
sc_pkcs15init_jcop_operations.create_pin = jcop_create_pin;
sc_pkcs15init_jcop_operations.create_key = jcop_create_key;
sc_pkcs15init_jcop_operations.store_key = jcop_store_key;
sc_pkcs15init_jcop_operations.generate_key = jcop_generate_key;
return &sc_pkcs15init_jcop_operations;
}

View File

@ -201,14 +201,14 @@ miocos_new_key(struct sc_profile *profile, sc_card_t *card,
return r;
}
static struct sc_pkcs15init_operations sc_pkcs15init_miocos_operations;
static struct sc_pkcs15init_operations sc_pkcs15init_miocos_operations = {
.init_app = miocos_init_app,
.new_pin = miocos_new_pin,
.new_key = miocos_new_key,
.new_file = miocos_new_file
};
struct sc_pkcs15init_operations *sc_pkcs15init_get_miocos_ops(void)
{
sc_pkcs15init_miocos_operations.init_app = miocos_init_app;
sc_pkcs15init_miocos_operations.new_pin = miocos_new_pin;
sc_pkcs15init_miocos_operations.new_key = miocos_new_key;
sc_pkcs15init_miocos_operations.new_file = miocos_new_file;
return &sc_pkcs15init_miocos_operations;
}

View File

@ -686,33 +686,20 @@ failed:
}
struct sc_pkcs15init_operations sc_pkcs15init_oberthur_operations;
static struct sc_pkcs15init_operations sc_pkcs15init_oberthur_operations = {
.erase_card = cosm_erase_card,
/* NEW */
.select_pin_reference = cosm_select_pin_reference,
.create_pin = cosm_create_pin,
/* OLD */
.init_app = cosm_init_app,
.new_key = cosm_new_key,
.new_file = cosm_new_file,
.old_generate_key = cosm_old_generate_key
};
struct sc_pkcs15init_operations *
sc_pkcs15init_get_oberthur_ops(void)
{
struct sc_pkcs15init_operations *ops = &sc_pkcs15init_oberthur_operations;
ops->erase_card = cosm_erase_card;
/* NEW */
ops->create_dir = NULL;
ops->create_domain = NULL;
ops->select_pin_reference = cosm_select_pin_reference;
ops->create_pin = cosm_create_pin;
ops->select_key_reference = NULL;
ops->create_key = NULL;
ops->store_key = NULL;
ops->generate_key = NULL;
ops->encode_private_key = NULL;
ops->encode_public_key = NULL;
/* OLD */
ops->init_app = cosm_init_app;
ops->new_pin = NULL;
ops->new_key = cosm_new_key;
ops->new_file = cosm_new_file;
ops->old_generate_key = cosm_old_generate_key;
return ops;
return &sc_pkcs15init_oberthur_operations;
}

View File

@ -913,20 +913,20 @@ static int starcos_finalize_card(sc_card_t *card)
return r;
}
static struct sc_pkcs15init_operations sc_pkcs15init_starcos_operations;
static struct sc_pkcs15init_operations sc_pkcs15init_starcos_operations = {
.erase_card = starcos_erase_card,
.init_card = starcos_init_card,
.create_dir = starcos_create_dir,
.select_pin_reference = starcos_pin_reference,
.create_pin = starcos_create_pin,
.select_key_reference = starcos_key_reference,
.create_key = starcos_create_key,
.store_key = starcos_store_key,
.generate_key = starcos_generate_key,
.finalize_card = starcos_finalize_card
};
struct sc_pkcs15init_operations *sc_pkcs15init_get_starcos_ops(void)
{
sc_pkcs15init_starcos_operations.erase_card = starcos_erase_card;
sc_pkcs15init_starcos_operations.init_card = starcos_init_card;
sc_pkcs15init_starcos_operations.create_dir = starcos_create_dir;
sc_pkcs15init_starcos_operations.select_pin_reference = starcos_pin_reference;
sc_pkcs15init_starcos_operations.create_pin = starcos_create_pin;
sc_pkcs15init_starcos_operations.select_key_reference = starcos_key_reference;
sc_pkcs15init_starcos_operations.create_key = starcos_create_key;
sc_pkcs15init_starcos_operations.store_key = starcos_store_key;
sc_pkcs15init_starcos_operations.generate_key = starcos_generate_key;
sc_pkcs15init_starcos_operations.finalize_card = starcos_finalize_card;
return &sc_pkcs15init_starcos_operations;
}