return 0;
}
-static int
-pkcs11_check_init(void)
+int _gnutls_pkcs11_check_init(void)
{
int ret;
unsigned long nslots;
ck_slot_id_t slots[MAX_SLOTS];
- /* make sure that modules are initialized */
- ret = pkcs11_check_init();
- if (ret < 0)
- return gnutls_assert_val(ret);
-
for (x = 0; x < active_providers; x++) {
if (providers[x].active == 0)
continue;
struct ck_function_list *module;
ck_slot_id_t slot;
struct token_info tinfo;
-
+
ret = pkcs11_find_slot(&module, &slot, info, &tinfo);
if (ret < 0) {
gnutls_assert();
unsigned long nslots;
ck_slot_id_t slots[MAX_SLOTS];
- /* make sure that modules are initialized */
- ret = pkcs11_check_init();
- if (ret < 0)
- return gnutls_assert_val(ret);
-
for (x = 0; x < active_providers; x++) {
if (providers[x].active == 0)
continue;
int ret;
struct url_find_data_st find_data;
+ PKCS11_CHECK_INIT;
+
/* fill in the find data structure */
find_data.crt = obj;
int ret;
struct token_num tn;
+ PKCS11_CHECK_INIT;
+
memset(&tn, 0, sizeof(tn));
tn.seq = seq;
tn.info = p11_kit_uri_new();
int ret;
struct crt_find_data_st priv;
+ PKCS11_CHECK_INIT;
+
memset(&priv, 0, sizeof(priv));
/* fill in the find data structure */
struct flags_find_data_st find_data;
int ret;
+ PKCS11_CHECK_INIT;
+
memset(&find_data, 0, sizeof(find_data));
ret = pkcs11_url_to_info(url, &find_data.info);
if (ret < 0) {
struct p11_kit_uri *info = NULL;
unsigned long count;
ck_mechanism_type_t mlist[400];
+
+ PKCS11_CHECK_INIT;
ret = pkcs11_url_to_info(url, &info);
if (ret < 0) {
size_t id_size;
struct p11_kit_uri *info = NULL;
+ PKCS11_CHECK_INIT;
+
memset(&priv, 0, sizeof(priv));
if (url == NULL || url[0] == 0) {
#include <p11-kit/uri.h>
typedef unsigned char ck_bool_t;
-
struct pkcs11_session_info {
struct ck_function_list *module;
struct ck_token_info tinfo;
struct pin_info_st pin;
};
+/* This must be called on every function that uses a PKCS #11 function
+ * directly */
+int _gnutls_pkcs11_check_init(void);
+
+#define PKCS11_CHECK_INIT \
+ ret = _gnutls_pkcs11_check_init(); \
+ if (ret < 0) \
+ return gnutls_assert_val(ret)
+
/* thus function is called for every token in the traverse_tokens
* function. Once everything is traversed it is called with NULL tinfo.
* It should return 0 if found what it was looking for.
struct pkcs11_session_info *sinfo;
ck_object_handle_t obj;
+ PKCS11_CHECK_INIT;
+
if (key->sinfo.init != 0) {
sinfo = &key->sinfo;
obj = key->obj;
struct pkcs11_session_info *sinfo;
ck_object_handle_t obj;
struct ck_session_info session_info;
+
+ PKCS11_CHECK_INIT;
if (key->sinfo.init != 0) {
sinfo = &key->sinfo;
ck_key_type_t key_type;
struct pkcs11_session_info sinfo;
+ PKCS11_CHECK_INIT;
+
memset(&sinfo, 0, sizeof(sinfo));
ret = pkcs11_url_to_info(url, &pkey->info);
struct pkcs11_session_info _sinfo;
struct pkcs11_session_info *sinfo;
+ PKCS11_CHECK_INIT;
+
if (key->sinfo.init != 0) {
sinfo = &key->sinfo;
obj = key->obj;
gnutls_pubkey_t pkey = NULL;
gnutls_pkcs11_obj_t obj = NULL;
+ PKCS11_CHECK_INIT;
+
memset(&sinfo, 0, sizeof(sinfo));
ret = pkcs11_url_to_info(url, &info);
int a_val;
uint8_t id[16];
struct pkcs11_session_info sinfo;
+
+ PKCS11_CHECK_INIT;
memset(&sinfo, 0, sizeof(sinfo));
ck_object_handle_t obj;
int a_val;
struct pkcs11_session_info sinfo;
+
+ PKCS11_CHECK_INIT;
memset(&sinfo, 0, sizeof(sinfo));
gnutls_datum_t m, e, d, u, exp1, exp2;
struct pkcs11_session_info sinfo;
+ PKCS11_CHECK_INIT;
+
memset(&sinfo, 0, sizeof(sinfo));
memset(&p, 0, sizeof(p));
int ret;
struct delete_data_st find_data;
+ PKCS11_CHECK_INIT;
+
memset(&find_data, 0, sizeof(find_data));
ret = pkcs11_url_to_info(object_url, &find_data.info);
ck_slot_id_t slot;
char flabel[32];
+ PKCS11_CHECK_INIT;
+
ret = pkcs11_url_to_info(token_url, &info);
if (ret < 0) {
gnutls_assert();
unsigned int ses_flags;
struct pkcs11_session_info sinfo;
+ PKCS11_CHECK_INIT;
+
memset(&sinfo, 0, sizeof(sinfo));
ret = pkcs11_url_to_info(token_url, &info);
ck_rv_t rv;
struct pkcs11_session_info sinfo;
+ PKCS11_CHECK_INIT;
+
memset(&sinfo, 0, sizeof(sinfo));
ret = pkcs11_url_to_info(token_url, &info);