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