diff options
author | Stef Walter <stefw@collabora.co.uk> | 2011-06-07 20:20:17 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2011-06-07 20:21:13 +0200 |
commit | 18cb0a89d3eb08847fc3ecc8cd9438bb88c7b4fa (patch) | |
tree | 1c5362536fc4df64222c6b837d9e1bae5d958456 /lib/pkcs11_secret.c | |
parent | 91b0db8967863694dee39d9722895e153ca8d580 (diff) | |
download | gnutls-18cb0a89d3eb08847fc3ecc8cd9438bb88c7b4fa.tar.gz |
The attached patch ports gnutls to p11-kit.
p11-kit is added as a dependency. p11-kit itself has no dependencies outside of basic libc stuff. The source code for p11-kit is available both in git and tarball form. [3]
If the gnutls dependency on p11-kit is disabled (via a configure option) then the PKCS#11 support is disabled. This is useful in bare bones embedded systems or places where very minimal dependencies are limited.
Diffstat (limited to 'lib/pkcs11_secret.c')
-rw-r--r-- | lib/pkcs11_secret.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/pkcs11_secret.c b/lib/pkcs11_secret.c index 3b8a80c0ab..6ae355fca9 100644 --- a/lib/pkcs11_secret.c +++ b/lib/pkcs11_secret.c @@ -50,8 +50,9 @@ gnutls_pkcs11_copy_secret_key (const char *token_url, gnutls_datum_t * key, /* GNUTLS_PKCS11_OBJ_FLAG_* */ ) { int ret; - pakchois_session_t *pks; - struct pkcs11_url_info info; + struct ck_function_list *module; + ck_session_handle_t pks; + struct p11_kit_uri *info = NULL; ck_rv_t rv; struct ck_attribute a[12]; ck_object_class_t class = CKO_SECRET_KEY; @@ -77,8 +78,10 @@ gnutls_pkcs11_copy_secret_key (const char *token_url, gnutls_datum_t * key, } ret = - pkcs11_open_session (&pks, &info, + pkcs11_open_session (&module, &pks, info, SESSION_WRITE | pkcs11_obj_flags_to_int (flags)); + p11_kit_uri_free (info); + if (ret < 0) { gnutls_assert (); @@ -126,11 +129,11 @@ gnutls_pkcs11_copy_secret_key (const char *token_url, gnutls_datum_t * key, a[a_val].value_len = sizeof (tval); a_val++; - rv = pakchois_create_object (pks, a, a_val, &obj); + rv = pkcs11_create_object (module, pks, a, a_val, &obj); if (rv != CKR_OK) { gnutls_assert (); - _gnutls_debug_log ("pkcs11: %s\n", pakchois_error (rv)); + _gnutls_debug_log ("pkcs11: %s\n", pkcs11_strerror (rv)); ret = pkcs11_rv_to_err (rv); goto cleanup; } @@ -141,7 +144,7 @@ gnutls_pkcs11_copy_secret_key (const char *token_url, gnutls_datum_t * key, ret = 0; cleanup: - pakchois_close_session (pks); + pkcs11_close_session (module, pks); return ret; |