Home | History | Annotate | Download | only in hx509

Lines Matching refs:slot

71     struct p11_slot *slot;
99 struct p11_slot *slot;
147 ret = p11_get_session(NULL, p11rsa->p, p11rsa->slot, NULL, &session);
153 p11_put_session(p11rsa->p, p11rsa->slot, session);
159 p11_put_session(p11rsa->p, p11rsa->slot, session);
185 ret = p11_get_session(NULL, p11rsa->p, p11rsa->slot, NULL, &session);
191 p11_put_session(p11rsa->p, p11rsa->slot, session);
197 p11_put_session(p11rsa->p, p11rsa->slot, session);
246 struct p11_slot *slot,
252 ret = P11FUNC(p, GetMechanismList, (slot->id, NULL_PTR, &i));
255 "Failed to get mech list count for slot %d",
261 "no mech supported for slot %d", num);
264 slot->mechs.list = calloc(i, sizeof(slot->mechs.list[0]));
265 if (slot->mechs.list == NULL) {
270 slot->mechs.num = i;
271 ret = P11FUNC(p, GetMechanismList, (slot->id, slot->mechs.list, &i));
274 "Failed to get mech list for slot %d",
278 assert(i == slot->mechs.num);
280 slot->mechs.infos = calloc(i, sizeof(*slot->mechs.infos));
281 if (slot->mechs.list == NULL) {
287 for (i = 0; i < slot->mechs.num; i++) {
288 slot->mechs.infos[i] = calloc(1, sizeof(*(slot->mechs.infos[0])));
289 if (slot->mechs.infos[i] == NULL) {
294 ret = P11FUNC(p, GetMechanismInfo, (slot->id, slot->mechs.list[i],
295 slot->mechs.infos[i]));
298 "Failed to get mech info for slot %d",
313 struct p11_slot *slot)
321 slot->certs = NULL;
322 slot->id = id;
324 ret = P11FUNC(p, GetSlotInfo, (slot->id, &slot_info));
327 "Failed to init PKCS11 slot %d",
340 ret = asprintf(&slot->name, "%.*s", (int)i,
348 ret = P11FUNC(p, GetTokenInfo, (slot->id, &token_info));
351 "Failed to init PKCS11 slot %d "
356 slot->flags |= P11_TOKEN_PRESENT;
359 slot->flags |= P11_LOGIN_REQ;
361 ret = p11_get_session(context, p, slot, lock, &session);
365 ret = p11_mech_info(context, p, slot, num);
369 ret = p11_list_keys(context, p, slot, session, lock, &slot->certs);
371 p11_put_session(p, slot, session);
379 struct p11_slot *slot,
385 if (slot->flags & P11_SESSION_IN_USE)
386 _hx509_abort("slot already in session");
388 if (slot->flags & P11_SESSION) {
389 slot->flags |= P11_SESSION_IN_USE;
390 *psession = slot->session;
394 ret = P11FUNC(p, OpenSession, (slot->id,
398 &slot->session));
402 "Failed to OpenSession for slot id %d "
404 (int)slot->id, ret);
408 slot->flags |= P11_SESSION;
422 if ( (slot->flags & P11_LOGIN_REQ)
423 && (slot->flags & P11_LOGIN_DONE) == 0
424 && (lock || slot->pin))
430 if (slot->pin == NULL) {
434 ret = asprintf(&str, "PIN code for %s: ", slot->name);
450 "Failed to get pin code for slot "
452 (int)slot->id, ret);
457 strlcpy(pin, slot->pin, sizeof(pin));
460 ret = P11FUNC(p, Login, (slot->session, CKU_USER,
465 "Failed to login on slot id %d "
467 (int)slot->id, ret);
481 slot->flags |= P11_LOGIN_DONE;
483 if (slot->pin == NULL) {
484 slot->pin = strdup(pin);
485 if (slot->pin == NULL) {
493 slot->flags |= P11_LOGIN_DONE;
495 slot->flags |= P11_SESSION_IN_USE;
497 *psession = slot->session;
504 struct p11_slot *slot,
507 if ((slot->flags & P11_SESSION_IN_USE) == 0)
508 _hx509_abort("slot not in session");
509 slot->flags &= ~P11_SESSION_IN_USE;
516 struct p11_module *p, struct p11_slot *slot,
564 ret = (*func)(context, p, slot, session, object, ptr, query, num_query);
592 struct p11_slot *slot,
626 struct p11_module *p, struct p11_slot *slot,
654 BIGNUM *n = getattr_bn(p, slot, session, object, CKA_MODULUS);
655 BIGNUM *e = getattr_bn(p, slot, session, object, CKA_PUBLIC_EXPONENT);
668 p11rsa->slot = slot;
721 struct p11_module *p, struct p11_slot *slot,
786 struct p11_slot *slot,
814 ret = iterate_entries(context, p, slot, session,
822 ret = iterate_entries(context, p, slot, session,
829 ret = _hx509_collector_collect_certs(context, collector, &slot->certs);
871 if (strncasecmp(str, "slot=", 5) == 0)
941 "Failed getting slot-list from "
947 p->slot = calloc(p->num_slots, sizeof(p->slot[0]));
948 if (p->slot == NULL) {
951 "Failed to get memory for slot-list");
959 ret = p11_init_slot(context, p, lock, slot_ids[i], i, &p->slot[i]);
961 if (p->slot[i].flags & P11_TOKEN_PRESENT)
997 if (p->slot[i].flags & P11_SESSION_IN_USE)
999 if (p->slot[i].flags & P11_SESSION) {
1000 P11FUNC(p, CloseSession, (p->slot[i].session));
1003 if (p->slot[i].name)
1004 free(p->slot[i].name);
1005 if (p->slot[i].pin) {
1006 memset(p->slot[i].pin, 0, strlen(p->slot[i].pin));
1007 free(p->slot[i].pin);
1009 if (p->slot[i].mechs.num) {
1010 free(p->slot[i].mechs.list);
1012 if (p->slot[i].mechs.infos) {
1015 for (j = 0 ; j < p->slot[i].mechs.num ; j++)
1016 free(p->slot[i].mechs.infos[j]);
1017 free(p->slot[i].mechs.infos);
1021 free(p->slot);
1040 if (p->slot[i].certs)
1041 hx509_certs_free(&p->slot[i].certs);
1073 if (p->slot[i].certs == NULL)
1075 ret = hx509_certs_merge(context, c->certs, p->slot[i].certs);
1162 _hx509_pi_printf(func, ctx, "pkcs11 driver with %d slot%s",
1166 struct p11_slot *s = &p->slot[i];
1168 _hx509_pi_printf(func, ctx, "slot %d: id: %d name: %s flags: %08x",