Lines Matching refs:object
136 meta_clone_template_setup(meta_object_t *object,
186 meta_handle2object(CK_OBJECT_HANDLE hObject, meta_object_t **object) in meta_handle2object() argument
192 *object = NULL; in meta_handle2object()
202 *object = NULL; in meta_handle2object()
208 *object = tmp_object; in meta_handle2object()
223 meta_object_alloc(meta_session_t *session, meta_object_t **object) in meta_object_alloc() argument
256 *object = new_object; in meta_object_alloc()
277 meta_object_t *object) in meta_object_get_attr() argument
279 CK_BBOOL is_sensitive = object->isSensitive; in meta_object_get_attr()
280 CK_BBOOL is_extractable = object->isExtractable; in meta_object_get_attr()
294 if (object->isFreeObject != FREE_ENABLED) { in meta_object_get_attr()
305 if (object->isFreeObject <= FREE_DISABLED) { in meta_object_get_attr()
311 is_private = object->isPrivate; in meta_object_get_attr()
335 if (object->isFreeObject <= FREE_DISABLED) { in meta_object_get_attr()
345 if (object->isFreeObject == FREE_UNCHECKED) { in meta_object_get_attr()
356 if (object->isFreeObject == FREE_UNCHECKED) { in meta_object_get_attr()
367 object->isFreeObject = FREE_DISABLED; in meta_object_get_attr()
379 if (object->isFreeObject == FREE_UNCHECKED) { in meta_object_get_attr()
383 object->isFreeObject = FREE_DISABLED; in meta_object_get_attr()
384 object->isFreeToken = FREE_DISABLED; in meta_object_get_attr()
387 object->isFreeObject = FREE_ENABLED; in meta_object_get_attr()
389 object->isFreeToken = FREE_ENABLED; in meta_object_get_attr()
391 object->isFreeObject = FREE_DISABLED; in meta_object_get_attr()
397 object->isToken = is_token; in meta_object_get_attr()
398 object->isPrivate = is_private; in meta_object_get_attr()
399 object->isSensitive = is_sensitive; in meta_object_get_attr()
400 object->isExtractable = is_extractable; in meta_object_get_attr()
451 meta_object_deactivate(meta_object_t *object, boolean_t have_list_lock, in meta_object_deactivate() argument
458 (void) pthread_rwlock_rdlock(&object->object_lock); in meta_object_deactivate()
461 (void) pthread_mutex_lock(&object->isClosingObject_lock); in meta_object_deactivate()
462 if (object->isClosingObject) { in meta_object_deactivate()
464 (void) pthread_mutex_unlock(&object->isClosingObject_lock); in meta_object_deactivate()
465 OBJRELEASE(object); in meta_object_deactivate()
468 object->isClosingObject = B_TRUE; in meta_object_deactivate()
469 (void) pthread_mutex_unlock(&object->isClosingObject_lock); in meta_object_deactivate()
471 if (object->isToken || (object->isFreeToken == FREE_ENABLED)) { in meta_object_deactivate()
475 list_lock = &object->creator_session->object_list_lock; in meta_object_deactivate()
476 list_head = &object->creator_session->object_list_head; in meta_object_deactivate()
489 object->magic_marker = METASLOT_OBJECT_BADMAGIC; in meta_object_deactivate()
495 if (*list_head == object) { in meta_object_deactivate()
497 if (object->next) { in meta_object_deactivate()
498 *list_head = object->next; in meta_object_deactivate()
499 object->next->prev = NULL; in meta_object_deactivate()
504 } else if (object->next != NULL || object->prev != NULL) { in meta_object_deactivate()
505 if (object->next) { in meta_object_deactivate()
506 object->prev->next = object->next; in meta_object_deactivate()
507 object->next->prev = object->prev; in meta_object_deactivate()
510 object->prev->next = NULL; in meta_object_deactivate()
525 (void) pthread_rwlock_unlock(&object->object_lock); /* rdlock */ in meta_object_deactivate()
526 (void) pthread_rwlock_wrlock(&object->object_lock); in meta_object_deactivate()
527 (void) pthread_rwlock_unlock(&object->object_lock); /* wrlock */ in meta_object_deactivate()
548 meta_object_dealloc(meta_session_t *session, meta_object_t *object, in meta_object_dealloc() argument
561 clone = object->clones[slotnum]; in meta_object_dealloc()
564 if (nukeSourceObj || (!object->isToken && in meta_object_dealloc()
565 !(object->isFreeToken == FREE_ENABLED && in meta_object_dealloc()
570 object->creator_session->session_flags : in meta_object_dealloc()
589 object->clones[slotnum] = NULL; in meta_object_dealloc()
593 dealloc_attributes(object->attributes, object->num_attributes); in meta_object_dealloc()
595 free(object->clones); in meta_object_dealloc()
596 free(object->tried_create_clone); in meta_object_dealloc()
598 if (object->clone_template) { in meta_object_dealloc()
599 for (i = 0; i < object->clone_template_size; i++) { in meta_object_dealloc()
600 freezero((object->clone_template)[i].pValue, in meta_object_dealloc()
601 (object->clone_template)[i].ulValueLen); in meta_object_dealloc()
603 free(object->clone_template); in meta_object_dealloc()
607 (void) pthread_rwlock_destroy(&object->object_lock); in meta_object_dealloc()
608 (void) pthread_rwlock_destroy(&object->attribute_lock); in meta_object_dealloc()
609 (void) pthread_mutex_destroy(&object->isClosingObject_lock); in meta_object_dealloc()
610 (void) pthread_mutex_destroy(&object->clone_create_lock); in meta_object_dealloc()
612 meta_object_delay_free(object); in meta_object_dealloc()
622 meta_slot_object_alloc(slot_object_t **object) in meta_slot_object_alloc() argument
630 *object = new_object; in meta_slot_object_alloc()
639 meta_slot_object_activate(slot_object_t *object, in meta_slot_object_activate() argument
642 object->creator_session = creator_session; in meta_slot_object_activate()
648 slot = &(slots[object->creator_session->slotnum]); in meta_slot_object_activate()
651 INSERT_INTO_LIST(slot->tokenobject_list_head, object); in meta_slot_object_activate()
654 slot_session_t *session = object->creator_session; in meta_slot_object_activate()
658 INSERT_INTO_LIST(session->object_list_head, object); in meta_slot_object_activate()
668 object->isToken = isToken; in meta_slot_object_activate()
678 meta_slot_object_deactivate(slot_object_t *object) in meta_slot_object_deactivate() argument
683 if (object->isToken) { in meta_slot_object_deactivate()
687 slot = &(slots[object->creator_session->slotnum]); in meta_slot_object_deactivate()
692 list_head = &object->creator_session->object_list_head; in meta_slot_object_deactivate()
693 list_lock = &object->creator_session->object_list_lock; in meta_slot_object_deactivate()
697 REMOVE_FROM_LIST(*list_head, object); in meta_slot_object_deactivate()
706 meta_slot_object_dealloc(slot_object_t *object) in meta_slot_object_dealloc() argument
709 free(object); in meta_slot_object_dealloc()
721 meta_object_copyin(meta_object_t *object) in meta_object_copyin() argument
732 (void) pthread_rwlock_wrlock(&object->attribute_lock); in meta_object_copyin()
735 if (object->attributes != NULL) { in meta_object_copyin()
739 slot_object = object->clones[object->master_clone_slotnum]; in meta_object_copyin()
741 rv = meta_get_slot_session(object->master_clone_slotnum, &session, in meta_object_copyin()
742 object->creator_session->session_flags); in meta_object_copyin()
752 &(object->attributes), &(object->num_attributes)); in meta_object_copyin()
764 attrs = calloc(object->num_attributes, sizeof (CK_ATTRIBUTE)); in meta_object_copyin()
771 for (i = 0; i < object->num_attributes; i++) { in meta_object_copyin()
773 ((object->attributes[i]).attribute).type; in meta_object_copyin()
775 num_attrs = object->num_attributes; in meta_object_copyin()
814 if (!object->attributes[i].canBeEmptyValue) { in meta_object_copyin()
841 object->attributes, object->num_attributes); in meta_object_copyin()
848 (void) pthread_rwlock_unlock(&object->attribute_lock); in meta_object_copyin()
969 clone_by_create(meta_object_t *object, slot_object_t *new_clone, in clone_by_create() argument
975 if (object->attributes == NULL) { in clone_by_create()
976 rv = meta_object_copyin(object); in clone_by_create()
982 if (object->clone_template == NULL) { in clone_by_create()
983 rv = meta_clone_template_setup(object, object->attributes, in clone_by_create()
984 object->num_attributes); in clone_by_create()
990 if (object->isFreeToken == FREE_ENABLED) { in clone_by_create()
993 object->clone_template, in clone_by_create()
994 object->clone_template_size, B_FALSE, &truevalue); in clone_by_create()
997 object->clone_template, in clone_by_create()
998 object->clone_template_size, B_FALSE, &falsevalue); in clone_by_create()
1003 dst_slot_session->hSession, object->clone_template, in clone_by_create()
1004 object->clone_template_size, &(new_clone->hObject)); in clone_by_create()
1008 object->clone_template, object->clone_template_size, in clone_by_create()
1242 clone_by_wrap(meta_object_t *object, slot_object_t *new_clone, in clone_by_wrap() argument
1264 slot_object = object->clones[object->master_clone_slotnum]; in clone_by_wrap()
1266 rv = meta_get_slot_session(object->master_clone_slotnum, in clone_by_wrap()
1267 &src_slot_session, object->creator_session->session_flags); in clone_by_wrap()
1519 meta_object_get_clone(meta_object_t *object, in meta_object_get_clone() argument
1526 if (object->clones[slot_num] != NULL) { in meta_object_get_clone()
1527 *clone = object->clones[slot_num]; in meta_object_get_clone()
1531 if ((object->isSensitive) && (object->isToken) && in meta_object_get_clone()
1542 if ((!object->isExtractable) && (object->attributes == NULL)) { in meta_object_get_clone()
1546 (void) pthread_mutex_lock(&object->clone_create_lock); in meta_object_get_clone()
1549 if (object->clones[slot_num] != NULL) { in meta_object_get_clone()
1550 *clone = object->clones[slot_num]; in meta_object_get_clone()
1559 if (object->tried_create_clone[slot_num]) { in meta_object_get_clone()
1560 (void) pthread_mutex_unlock(&object->clone_create_lock); in meta_object_get_clone()
1568 object->tried_create_clone[slot_num] = B_TRUE; in meta_object_get_clone()
1577 if (object->isSensitive && object->attributes == NULL) { in meta_object_get_clone()
1578 rv = clone_by_wrap(object, newclone, slot_session); in meta_object_get_clone()
1580 rv = clone_by_create(object, newclone, slot_session); in meta_object_get_clone()
1587 object->clones[slot_num] = newclone; in meta_object_get_clone()
1588 meta_slot_object_activate(newclone, slot_session, object->isToken); in meta_object_get_clone()
1593 (void) pthread_mutex_unlock(&object->clone_create_lock); in meta_object_get_clone()
1608 meta_clone_template_setup(meta_object_t *object, in meta_clone_template_setup() argument
1622 (void) pthread_rwlock_rdlock(&object->attribute_lock); in meta_clone_template_setup()
1627 object->isFreeToken == FREE_DISABLED)) { in meta_clone_template_setup()
1643 (void) pthread_rwlock_unlock(&object->attribute_lock); in meta_clone_template_setup()
1648 object->attributes[i].attribute.pValue, in meta_clone_template_setup()
1653 (void) pthread_rwlock_unlock(&object->attribute_lock); in meta_clone_template_setup()
1655 object->clone_template = clone_template; in meta_clone_template_setup()
1656 object->clone_template_size = c; in meta_clone_template_setup()
1675 meta_object_t *object = NULL, *tmp_obj; in meta_object_find_by_handle() local
1694 object = tmp_obj; in meta_object_find_by_handle()
1699 if (object != NULL) { in meta_object_find_by_handle()
1706 if (object != NULL) { in meta_object_find_by_handle()
1714 if (object != NULL) { in meta_object_find_by_handle()
1716 return (object); in meta_object_find_by_handle()
1732 object = tmp_obj; in meta_object_find_by_handle()
1735 if (object != NULL) { in meta_object_find_by_handle()
1742 return (object); in meta_object_find_by_handle()
1748 meta_object_t *object, *tmp_object; in meta_token_object_deactivate() local
1754 object = tokenobject_list_head; in meta_token_object_deactivate()
1757 while (object != NULL) { in meta_token_object_deactivate()
1758 tmp_object = object->next; in meta_token_object_deactivate()
1761 ((object->isPrivate) && (token_type == PRIVATE_TOKEN)) || in meta_token_object_deactivate()
1762 ((!object->isPrivate) && (token_type == PUBLIC_TOKEN))) { in meta_token_object_deactivate()
1763 rv = meta_object_deactivate(object, B_TRUE, B_FALSE); in meta_token_object_deactivate()
1768 rv = meta_object_dealloc(NULL, object, B_FALSE); in meta_token_object_deactivate()
1774 object = tmp_object; in meta_token_object_deactivate()
1826 meta_freeobject_check(meta_session_t *session, meta_object_t *object, in meta_freeobject_check() argument
1838 (!object->isToken && !object->isSensitive && in meta_freeobject_check()
1891 if (object->isToken) in meta_freeobject_check()
1892 object->isFreeToken = FREE_ALLOWED_KEY; in meta_freeobject_check()
1894 object->isFreeToken = FREE_DISABLED; in meta_freeobject_check()
1896 object->isFreeObject = FREE_ALLOWED_KEY; in meta_freeobject_check()
1901 object->isFreeToken = FREE_DISABLED; in meta_freeobject_check()
1902 object->isFreeObject = FREE_DISABLED; in meta_freeobject_check()
1919 meta_freeobject_set(meta_object_t *object, CK_ATTRIBUTE *tmpl, in meta_freeobject_set() argument
1924 if (object->isFreeObject < FREE_ALLOWED_KEY) in meta_freeobject_set()
1929 if (object->isSensitive) { in meta_freeobject_set()
1934 object->isFreeObject = FREE_ENABLED; in meta_freeobject_set()
1938 if (object->isPrivate) { in meta_freeobject_set()
1943 object->isFreeObject = FREE_ENABLED; in meta_freeobject_set()
1947 if (object->isToken) { in meta_freeobject_set()
1948 object->isToken = B_FALSE; in meta_freeobject_set()
1949 object->isFreeToken = FREE_ENABLED; in meta_freeobject_set()
1950 object->isFreeObject = FREE_ENABLED; in meta_freeobject_set()
1952 object->isFreeToken = FREE_DISABLED; in meta_freeobject_set()
1958 if (object->isFreeObject == FREE_ALLOWED_KEY) in meta_freeobject_set()
1959 object->isFreeObject = FREE_DISABLED; in meta_freeobject_set()
1964 object->isFreeToken = FREE_DISABLED; in meta_freeobject_set()
1965 object->isFreeObject = FREE_DISABLED; in meta_freeobject_set()
2013 meta_freeobject_clone_maker(meta_session_t *session, meta_object_t *object, in meta_freeobject_clone_maker() argument
2030 rv = clone_by_create(object, slot_object, slot_session); in meta_freeobject_clone_maker()
2032 object->clones[slotnum] = slot_object; in meta_freeobject_clone_maker()
2053 meta_freeobject_clone(meta_session_t *session, meta_object_t *object) in meta_freeobject_clone() argument
2060 if (object->attributes == NULL) { in meta_freeobject_clone()
2061 rv = meta_object_copyin(object); in meta_freeobject_clone()
2066 if (object->isPrivate) { in meta_freeobject_clone()
2068 CK_ULONG slotnum = object->master_clone_slotnum; in meta_freeobject_clone()
2076 rv = attribute_set_value(attr, object->attributes, in meta_freeobject_clone()
2077 object->num_attributes); in meta_freeobject_clone()
2090 object->clones[slotnum]->hObject, attr, 1, &new_clone); in meta_freeobject_clone()
2103 if (object->clones[keystore_slotnum] == NULL) { in meta_freeobject_clone()
2105 object, keystore_slotnum); in meta_freeobject_clone()
2110 object->master_clone_slotnum = keystore_slotnum; in meta_freeobject_clone()
2119 object->clones[slotnum]->hObject); in meta_freeobject_clone()
2126 object->clones[slotnum]->hObject = new_clone; in meta_freeobject_clone()
2128 object->clones[slotnum] = NULL; in meta_freeobject_clone()
2134 if (object->isSensitive) { in meta_freeobject_clone()
2136 CK_ULONG slotnum = object->master_clone_slotnum; in meta_freeobject_clone()
2141 rv = attribute_set_value(attr, object->attributes, in meta_freeobject_clone()
2142 object->num_attributes); in meta_freeobject_clone()
2151 object->clones[slotnum]->hObject, attr, 1); in meta_freeobject_clone()
2157 if (object->isFreeToken == FREE_ENABLED || failover) { in meta_freeobject_clone()
2159 if (object->clones[keystore_slotnum] == NULL) { in meta_freeobject_clone()
2160 rv = meta_freeobject_clone_maker(session, object, in meta_freeobject_clone()
2165 object->master_clone_slotnum = keystore_slotnum; in meta_freeobject_clone()
2167 object->isFreeToken = FREE_ENABLED; in meta_freeobject_clone()
2170 object->isFreeObject = FREE_ENABLED; in meta_freeobject_clone()
2174 object->isFreeToken = FREE_DISABLED; in meta_freeobject_clone()
2175 object->isFreeObject = FREE_DISABLED; in meta_freeobject_clone()