summaryrefslogtreecommitdiff
path: root/lib/pkcs11_secret.c
diff options
context:
space:
mode:
authorStef Walter <stefw@collabora.co.uk>2011-06-07 20:20:17 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-06-07 20:21:13 +0200
commit18cb0a89d3eb08847fc3ecc8cd9438bb88c7b4fa (patch)
tree1c5362536fc4df64222c6b837d9e1bae5d958456 /lib/pkcs11_secret.c
parent91b0db8967863694dee39d9722895e153ca8d580 (diff)
downloadgnutls-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.c15
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;