Lines Matching refs:slot

68     struct p11_slot *slot;
96 struct p11_slot *slot;
144 ret = p11_get_session(NULL, p11rsa->p, p11rsa->slot, NULL, &session);
150 p11_put_session(p11rsa->p, p11rsa->slot, session);
156 p11_put_session(p11rsa->p, p11rsa->slot, session);
182 ret = p11_get_session(NULL, p11rsa->p, p11rsa->slot, NULL, &session);
188 p11_put_session(p11rsa->p, p11rsa->slot, session);
194 p11_put_session(p11rsa->p, p11rsa->slot, session);
239 struct p11_slot *slot,
245 ret = P11FUNC(p, GetMechanismList, (slot->id, NULL_PTR, &i));
248 "Failed to get mech list count for slot %d",
254 "no mech supported for slot %d", num);
257 slot->mechs.list = calloc(i, sizeof(slot->mechs.list[0]));
258 if (slot->mechs.list == NULL) {
263 slot->mechs.num = i;
264 ret = P11FUNC(p, GetMechanismList, (slot->id, slot->mechs.list, &i));
267 "Failed to get mech list for slot %d",
271 assert(i == slot->mechs.num);
273 slot->mechs.infos = calloc(i, sizeof(*slot->mechs.infos));
274 if (slot->mechs.list == NULL) {
280 for (i = 0; i < slot->mechs.num; i++) {
281 slot->mechs.infos[i] = calloc(1, sizeof(*(slot->mechs.infos[0])));
282 if (slot->mechs.infos[i] == NULL) {
287 ret = P11FUNC(p, GetMechanismInfo, (slot->id, slot->mechs.list[i],
288 slot->mechs.infos[i]));
291 "Failed to get mech info for slot %d",
306 struct p11_slot *slot)
314 slot->certs = NULL;
315 slot->id = id;
317 ret = P11FUNC(p, GetSlotInfo, (slot->id, &slot_info));
320 "Failed to init PKCS11 slot %d",
333 asprintf(&slot->name, "%.*s",
339 ret = P11FUNC(p, GetTokenInfo, (slot->id, &token_info));
342 "Failed to init PKCS11 slot %d "
347 slot->flags |= P11_TOKEN_PRESENT;
350 slot->flags |= P11_LOGIN_REQ;
352 ret = p11_get_session(context, p, slot, lock, &session);
356 ret = p11_mech_info(context, p, slot, num);
360 ret = p11_list_keys(context, p, slot, session, lock, &slot->certs);
362 p11_put_session(p, slot, session);
370 struct p11_slot *slot,
376 if (slot->flags & P11_SESSION_IN_USE)
377 _hx509_abort("slot already in session");
379 if (slot->flags & P11_SESSION) {
380 slot->flags |= P11_SESSION_IN_USE;
381 *psession = slot->session;
385 ret = P11FUNC(p, OpenSession, (slot->id,
389 &slot->session));
393 "Failed to OpenSession for slot id %d "
395 (int)slot->id, ret);
399 slot->flags |= P11_SESSION;
413 if ( (slot->flags & P11_LOGIN_REQ)
414 && (slot->flags & P11_LOGIN_DONE) == 0
415 && (lock || slot->pin))
421 if (slot->pin == NULL) {
425 asprintf(&str, "PIN code for %s: ", slot->name);
436 "Failed to get pin code for slot "
438 (int)slot->id, ret);
443 strlcpy(pin, slot->pin, sizeof(pin));
446 ret = P11FUNC(p, Login, (slot->session, CKU_USER,
451 "Failed to login on slot id %d "
453 (int)slot->id, ret);
456 slot->flags |= P11_LOGIN_DONE;
458 if (slot->pin == NULL) {
459 slot->pin = strdup(pin);
460 if (slot->pin == NULL) {
468 slot->flags |= P11_LOGIN_DONE;
470 slot->flags |= P11_SESSION_IN_USE;
472 *psession = slot->session;
479 struct p11_slot *slot,
482 if ((slot->flags & P11_SESSION_IN_USE) == 0)
483 _hx509_abort("slot not in session");
484 slot->flags &= ~P11_SESSION_IN_USE;
491 struct p11_module *p, struct p11_slot *slot,
539 ret = (*func)(context, p, slot, session, object, ptr, query, num_query);
567 struct p11_slot *slot,
601 struct p11_module *p, struct p11_slot *slot,
629 rsa->n = getattr_bn(p, slot, session, object, CKA_MODULUS);
630 rsa->e = getattr_bn(p, slot, session, object, CKA_PUBLIC_EXPONENT);
637 p11rsa->slot = slot;
677 struct p11_module *p, struct p11_slot *slot,
738 struct p11_slot *slot,
766 ret = iterate_entries(context, p, slot, session,
774 ret = iterate_entries(context, p, slot, session,
781 ret = _hx509_collector_collect_certs(context, collector, &slot->certs);
823 if (strncasecmp(str, "slot=", 5) == 0)
895 "Failed getting slot-list from "
901 p->slot = calloc(p->num_slots, sizeof(p->slot[0]));
902 if (p->slot == NULL) {
905 "Failed to get memory for slot-list");
911 ret = p11_init_slot(context, p, lock, slot_ids[i], i, &p->slot[i]);
914 if (p->slot[i].flags & P11_TOKEN_PRESENT)
945 if (p->slot[i].flags & P11_SESSION_IN_USE)
947 if (p->slot[i].flags & P11_SESSION) {
948 P11FUNC(p, CloseSession, (p->slot[i].session));
951 if (p->slot[i].name)
952 free(p->slot[i].name);
953 if (p->slot[i].pin) {
954 memset(p->slot[i].pin, 0, strlen(p->slot[i].pin));
955 free(p->slot[i].pin);
957 if (p->slot[i].mechs.num) {
958 free(p->slot[i].mechs.list);
960 if (p->slot[i].mechs.infos) {
963 for (j = 0 ; j < p->slot[i].mechs.num ; j++)
964 free(p->slot[i].mechs.infos[j]);
965 free(p->slot[i].mechs.infos);
969 free(p->slot);
988 if (p->slot[i].certs)
989 hx509_certs_free(&p->slot[i].certs);
1021 if (p->slot[i].certs == NULL)
1023 ret = hx509_certs_merge(context, c->certs, p->slot[i].certs);
1110 _hx509_pi_printf(func, ctx, "pkcs11 driver with %d slot%s",
1114 struct p11_slot *s = &p->slot[i];
1116 _hx509_pi_printf(func, ctx, "slot %d: id: %d name: %s flags: %08x",