From 4d48735d10c2a7806b37af10085a19fff69a9afe Mon Sep 17 00:00:00 2001 From: nils Date: Wed, 10 Aug 2005 21:31:18 +0000 Subject: [PATCH] initialize sc_pkcs15init_operations at compile time git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@2480 c6295689-39f2-0310-b995-f0e70906c6a9 --- src/pkcs15init/pkcs15-cflex.c | 61 +++++++++++++++----------------- src/pkcs15init/pkcs15-etoken.c | 20 +++++------ src/pkcs15init/pkcs15-gpk.c | 18 +++++----- src/pkcs15init/pkcs15-jcop.c | 18 +++++----- src/pkcs15init/pkcs15-miocos.c | 12 +++---- src/pkcs15init/pkcs15-oberthur.c | 37 +++++++------------ src/pkcs15init/pkcs15-starcos.c | 24 ++++++------- 7 files changed, 86 insertions(+), 104 deletions(-) diff --git a/src/pkcs15init/pkcs15-cflex.c b/src/pkcs15init/pkcs15-cflex.c index 2b7dce55..ad31c135 100644 --- a/src/pkcs15init/pkcs15-cflex.c +++ b/src/pkcs15init/pkcs15-cflex.c @@ -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; } diff --git a/src/pkcs15init/pkcs15-etoken.c b/src/pkcs15init/pkcs15-etoken.c index 1bd00d7e..515fd7e8 100644 --- a/src/pkcs15init/pkcs15-etoken.c +++ b/src/pkcs15init/pkcs15-etoken.c @@ -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; } diff --git a/src/pkcs15init/pkcs15-gpk.c b/src/pkcs15init/pkcs15-gpk.c index bb9728b8..5f00603e 100644 --- a/src/pkcs15init/pkcs15-gpk.c +++ b/src/pkcs15init/pkcs15-gpk.c @@ -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; } diff --git a/src/pkcs15init/pkcs15-jcop.c b/src/pkcs15init/pkcs15-jcop.c index 53c7ec8d..7c140268 100644 --- a/src/pkcs15init/pkcs15-jcop.c +++ b/src/pkcs15init/pkcs15-jcop.c @@ -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; } diff --git a/src/pkcs15init/pkcs15-miocos.c b/src/pkcs15init/pkcs15-miocos.c index d50d39db..bde089c0 100644 --- a/src/pkcs15init/pkcs15-miocos.c +++ b/src/pkcs15init/pkcs15-miocos.c @@ -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; } diff --git a/src/pkcs15init/pkcs15-oberthur.c b/src/pkcs15init/pkcs15-oberthur.c index ed643ca6..dce7a247 100644 --- a/src/pkcs15init/pkcs15-oberthur.c +++ b/src/pkcs15init/pkcs15-oberthur.c @@ -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; } diff --git a/src/pkcs15init/pkcs15-starcos.c b/src/pkcs15init/pkcs15-starcos.c index 35bbde93..41349b36 100644 --- a/src/pkcs15init/pkcs15-starcos.c +++ b/src/pkcs15init/pkcs15-starcos.c @@ -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; }