From ad1dddabf35a0f5b98e3bc0b68351a3847a2f693 Mon Sep 17 00:00:00 2001 From: "ludovic.rousseau" Date: Fri, 2 Apr 2010 11:43:09 +0000 Subject: [PATCH] use explict field names in the static initialisation to make it more robust to code change git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@4195 c6295689-39f2-0310-b995-f0e70906c6a9 --- src/pkcs11/openssl.c | 182 ++++++++++++++++++++++++++++++------------- 1 file changed, 126 insertions(+), 56 deletions(-) diff --git a/src/pkcs11/openssl.c b/src/pkcs11/openssl.c index d69f7033..e4beac67 100644 --- a/src/pkcs11/openssl.c +++ b/src/pkcs11/openssl.c @@ -32,84 +32,154 @@ static CK_RV sc_pkcs11_openssl_md_final(sc_pkcs11_operation_t *, static void sc_pkcs11_openssl_md_release(sc_pkcs11_operation_t *); static sc_pkcs11_mechanism_type_t openssl_sha1_mech = { - CKM_SHA_1, - { 0, 0, CKF_DIGEST }, 0, - sizeof(struct sc_pkcs11_operation), - sc_pkcs11_openssl_md_release, - sc_pkcs11_openssl_md_init, - sc_pkcs11_openssl_md_update, - sc_pkcs11_openssl_md_final, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + .mech = CKM_SHA_1, + .mech_info = { 0, 0, CKF_DIGEST }, + .key_type = 0, + .obj_size = sizeof(struct sc_pkcs11_operation), + .release = sc_pkcs11_openssl_md_release, + .md_init = sc_pkcs11_openssl_md_init, + .md_update = sc_pkcs11_openssl_md_update, + .md_final = sc_pkcs11_openssl_md_final, + .sign_init = NULL, + .sign_update = NULL, + .sign_final = NULL, + .sign_size = NULL, + .verif_init = NULL, + .verif_update = NULL, + .verif_final = NULL, + .decrypt_init = NULL, + .decrypt = NULL, + .mech_data = NULL }; #if OPENSSL_VERSION_NUMBER >= 0x00908000L static sc_pkcs11_mechanism_type_t openssl_sha256_mech = { - CKM_SHA256, - { 0, 0, CKF_DIGEST }, 0, - sizeof(struct sc_pkcs11_operation), - sc_pkcs11_openssl_md_release, - sc_pkcs11_openssl_md_init, - sc_pkcs11_openssl_md_update, - sc_pkcs11_openssl_md_final, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + .mech = CKM_SHA256, + .mech_info = { 0, 0, CKF_DIGEST }, + .key_type = 0, + .obj_size = sizeof(struct sc_pkcs11_operation), + .release = sc_pkcs11_openssl_md_release, + .md_init = sc_pkcs11_openssl_md_init, + .md_update = sc_pkcs11_openssl_md_update, + .md_final = sc_pkcs11_openssl_md_final, + .sign_init = NULL, + .sign_update = NULL, + .sign_final = NULL, + .sign_size = NULL, + .verif_init = NULL, + .verif_update = NULL, + .verif_final = NULL, + .decrypt_init = NULL, + .decrypt = NULL, + .mech_data = NULL }; static sc_pkcs11_mechanism_type_t openssl_sha384_mech = { - CKM_SHA384, - { 0, 0, CKF_DIGEST }, 0, - sizeof(struct sc_pkcs11_operation), - sc_pkcs11_openssl_md_release, - sc_pkcs11_openssl_md_init, - sc_pkcs11_openssl_md_update, - sc_pkcs11_openssl_md_final, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + .mech = CKM_SHA384, + .mech_info = { 0, 0, CKF_DIGEST }, + .key_type = 0, + .obj_size = sizeof(struct sc_pkcs11_operation), + .release = sc_pkcs11_openssl_md_release, + .md_init = sc_pkcs11_openssl_md_init, + .md_update = sc_pkcs11_openssl_md_update, + .md_final = sc_pkcs11_openssl_md_final, + .sign_init = NULL, + .sign_update = NULL, + .sign_final = NULL, + .sign_size = NULL, + .verif_init = NULL, + .verif_update = NULL, + .verif_final = NULL, + .decrypt_init = NULL, + .decrypt = NULL, + .mech_data = NULL }; static sc_pkcs11_mechanism_type_t openssl_sha512_mech = { - CKM_SHA512, - { 0, 0, CKF_DIGEST }, 0, - sizeof(struct sc_pkcs11_operation), - sc_pkcs11_openssl_md_release, - sc_pkcs11_openssl_md_init, - sc_pkcs11_openssl_md_update, - sc_pkcs11_openssl_md_final, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + .mech = CKM_SHA512, + .mech_info = { 0, 0, CKF_DIGEST }, + .key_type = 0, + .obj_size = sizeof(struct sc_pkcs11_operation), + .release = sc_pkcs11_openssl_md_release, + .md_init = sc_pkcs11_openssl_md_init, + .md_update = sc_pkcs11_openssl_md_update, + .md_final = sc_pkcs11_openssl_md_final, + .sign_init = NULL, + .sign_update = NULL, + .sign_final = NULL, + .sign_size = NULL, + .verif_init = NULL, + .verif_update = NULL, + .verif_final = NULL, + .decrypt_init = NULL, + .decrypt = NULL, + .mech_data = NULL }; #endif #if OPENSSL_VERSION_NUMBER >= 0x10000000L static sc_pkcs11_mechanism_type_t openssl_gostr3411_mech = { - CKM_GOSTR3411, - { 0, 0, CKF_DIGEST }, 0, - sizeof(struct sc_pkcs11_operation), - sc_pkcs11_openssl_md_release, - sc_pkcs11_openssl_md_init, - sc_pkcs11_openssl_md_update, - sc_pkcs11_openssl_md_final, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + .mech = CKM_GOSTR3411, + .mech_info = { 0, 0, CKF_DIGEST }, + .key_type = 0, + .obj_size = sizeof(struct sc_pkcs11_operation), + .release = sc_pkcs11_openssl_md_release, + .md_init = sc_pkcs11_openssl_md_init, + .md_update = sc_pkcs11_openssl_md_update, + .md_final = sc_pkcs11_openssl_md_final, + .sign_init = NULL, + .sign_update = NULL, + .sign_final = NULL, + .sign_size = NULL, + .verif_init = NULL, + .verif_update = NULL, + .verif_final = NULL, + .decrypt_init = NULL, + .decrypt = NULL, + .mech_data = NULL }; #endif static sc_pkcs11_mechanism_type_t openssl_md5_mech = { - CKM_MD5, - { 0, 0, CKF_DIGEST }, 0, - sizeof(struct sc_pkcs11_operation), - sc_pkcs11_openssl_md_release, - sc_pkcs11_openssl_md_init, - sc_pkcs11_openssl_md_update, - sc_pkcs11_openssl_md_final, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + .mech = CKM_MD5, + .mech_info = { 0, 0, CKF_DIGEST }, + .key_type = 0, + .obj_size = sizeof(struct sc_pkcs11_operation), + .release = sc_pkcs11_openssl_md_release, + .md_init = sc_pkcs11_openssl_md_init, + .md_update = sc_pkcs11_openssl_md_update, + .md_final = sc_pkcs11_openssl_md_final, + .sign_init = NULL, + .sign_update = NULL, + .sign_final = NULL, + .sign_size = NULL, + .verif_init = NULL, + .verif_update = NULL, + .verif_final = NULL, + .decrypt_init = NULL, + .decrypt = NULL, + .mech_data = NULL }; static sc_pkcs11_mechanism_type_t openssl_ripemd160_mech = { - CKM_RIPEMD160, - { 0, 0, CKF_DIGEST }, 0, - sizeof(struct sc_pkcs11_operation), - sc_pkcs11_openssl_md_release, - sc_pkcs11_openssl_md_init, - sc_pkcs11_openssl_md_update, - sc_pkcs11_openssl_md_final, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + .mech = CKM_RIPEMD160, + .mech_info = { 0, 0, CKF_DIGEST }, + .key_type = 0, + .obj_size = sizeof(struct sc_pkcs11_operation), + .release = sc_pkcs11_openssl_md_release, + .md_init = sc_pkcs11_openssl_md_init, + .md_update = sc_pkcs11_openssl_md_update, + .md_final = sc_pkcs11_openssl_md_final, + .sign_init = NULL, + .sign_update = NULL, + .sign_final = NULL, + .sign_size = NULL, + .verif_init = NULL, + .verif_update = NULL, + .verif_final = NULL, + .decrypt_init = NULL, + .decrypt = NULL, + .mech_data = NULL }; void