Lines Matching refs:object
135 meta_clone_template_setup(meta_object_t *object,
185 meta_handle2object(CK_OBJECT_HANDLE hObject, meta_object_t **object) in meta_handle2object() argument
191 *object = NULL; in meta_handle2object()
201 *object = NULL; in meta_handle2object()
207 *object = tmp_object; in meta_handle2object()
222 meta_object_alloc(meta_session_t *session, meta_object_t **object) in meta_object_alloc() argument
255 *object = new_object; in meta_object_alloc()
276 meta_object_t *object) in meta_object_get_attr() argument
278 CK_BBOOL is_sensitive = object->isSensitive; in meta_object_get_attr()
279 CK_BBOOL is_extractable = object->isExtractable; in meta_object_get_attr()
293 if (object->isFreeObject != FREE_ENABLED) { in meta_object_get_attr()
304 if (object->isFreeObject <= FREE_DISABLED) { in meta_object_get_attr()
310 is_private = object->isPrivate; in meta_object_get_attr()
334 if (object->isFreeObject <= FREE_DISABLED) { in meta_object_get_attr()
344 if (object->isFreeObject == FREE_UNCHECKED) { in meta_object_get_attr()
355 if (object->isFreeObject == FREE_UNCHECKED) { in meta_object_get_attr()
366 object->isFreeObject = FREE_DISABLED; in meta_object_get_attr()
378 if (object->isFreeObject == FREE_UNCHECKED) { in meta_object_get_attr()
382 object->isFreeObject = FREE_DISABLED; in meta_object_get_attr()
383 object->isFreeToken = FREE_DISABLED; in meta_object_get_attr()
386 object->isFreeObject = FREE_ENABLED; in meta_object_get_attr()
388 object->isFreeToken = FREE_ENABLED; in meta_object_get_attr()
390 object->isFreeObject = FREE_DISABLED; in meta_object_get_attr()
396 object->isToken = is_token; in meta_object_get_attr()
397 object->isPrivate = is_private; in meta_object_get_attr()
398 object->isSensitive = is_sensitive; in meta_object_get_attr()
399 object->isExtractable = is_extractable; in meta_object_get_attr()
450 meta_object_deactivate(meta_object_t *object, boolean_t have_list_lock, in meta_object_deactivate() argument
457 (void) pthread_rwlock_rdlock(&object->object_lock); in meta_object_deactivate()
460 (void) pthread_mutex_lock(&object->isClosingObject_lock); in meta_object_deactivate()
461 if (object->isClosingObject) { in meta_object_deactivate()
463 (void) pthread_mutex_unlock(&object->isClosingObject_lock); in meta_object_deactivate()
464 OBJRELEASE(object); in meta_object_deactivate()
467 object->isClosingObject = B_TRUE; in meta_object_deactivate()
468 (void) pthread_mutex_unlock(&object->isClosingObject_lock); in meta_object_deactivate()
470 if (object->isToken || (object->isFreeToken == FREE_ENABLED)) { in meta_object_deactivate()
474 list_lock = &object->creator_session->object_list_lock; in meta_object_deactivate()
475 list_head = &object->creator_session->object_list_head; in meta_object_deactivate()
488 object->magic_marker = METASLOT_OBJECT_BADMAGIC; in meta_object_deactivate()
494 if (*list_head == object) { in meta_object_deactivate()
496 if (object->next) { in meta_object_deactivate()
497 *list_head = object->next; in meta_object_deactivate()
498 object->next->prev = NULL; in meta_object_deactivate()
503 } else if (object->next != NULL || object->prev != NULL) { in meta_object_deactivate()
504 if (object->next) { in meta_object_deactivate()
505 object->prev->next = object->next; in meta_object_deactivate()
506 object->next->prev = object->prev; in meta_object_deactivate()
509 object->prev->next = NULL; in meta_object_deactivate()
524 (void) pthread_rwlock_unlock(&object->object_lock); /* rdlock */ in meta_object_deactivate()
525 (void) pthread_rwlock_wrlock(&object->object_lock); in meta_object_deactivate()
526 (void) pthread_rwlock_unlock(&object->object_lock); /* wrlock */ in meta_object_deactivate()
547 meta_object_dealloc(meta_session_t *session, meta_object_t *object, in meta_object_dealloc() argument
560 clone = object->clones[slotnum]; in meta_object_dealloc()
563 if (nukeSourceObj || (!object->isToken && in meta_object_dealloc()
564 !(object->isFreeToken == FREE_ENABLED && in meta_object_dealloc()
569 object->creator_session->session_flags : in meta_object_dealloc()
588 object->clones[slotnum] = NULL; in meta_object_dealloc()
592 dealloc_attributes(object->attributes, object->num_attributes); in meta_object_dealloc()
594 free(object->clones); in meta_object_dealloc()
595 free(object->tried_create_clone); in meta_object_dealloc()
597 if (object->clone_template) { in meta_object_dealloc()
598 for (i = 0; i < object->clone_template_size; i++) { in meta_object_dealloc()
599 free(((object->clone_template)[i]).pValue); in meta_object_dealloc()
601 free(object->clone_template); in meta_object_dealloc()
605 (void) pthread_rwlock_destroy(&object->object_lock); in meta_object_dealloc()
606 (void) pthread_rwlock_destroy(&object->attribute_lock); in meta_object_dealloc()
607 (void) pthread_mutex_destroy(&object->isClosingObject_lock); in meta_object_dealloc()
608 (void) pthread_mutex_destroy(&object->clone_create_lock); in meta_object_dealloc()
610 meta_object_delay_free(object); in meta_object_dealloc()
620 meta_slot_object_alloc(slot_object_t **object) { in meta_slot_object_alloc() argument
627 *object = new_object; in meta_slot_object_alloc()
636 meta_slot_object_activate(slot_object_t *object, in meta_slot_object_activate() argument
639 object->creator_session = creator_session; in meta_slot_object_activate()
645 slot = &(slots[object->creator_session->slotnum]); in meta_slot_object_activate()
648 INSERT_INTO_LIST(slot->tokenobject_list_head, object); in meta_slot_object_activate()
651 slot_session_t *session = object->creator_session; in meta_slot_object_activate()
655 INSERT_INTO_LIST(session->object_list_head, object); in meta_slot_object_activate()
665 object->isToken = isToken; in meta_slot_object_activate()
675 meta_slot_object_deactivate(slot_object_t *object) in meta_slot_object_deactivate() argument
680 if (object->isToken) { in meta_slot_object_deactivate()
684 slot = &(slots[object->creator_session->slotnum]); in meta_slot_object_deactivate()
689 list_head = &object->creator_session->object_list_head; in meta_slot_object_deactivate()
690 list_lock = &object->creator_session->object_list_lock; in meta_slot_object_deactivate()
694 REMOVE_FROM_LIST(*list_head, object); in meta_slot_object_deactivate()
703 meta_slot_object_dealloc(slot_object_t *object) in meta_slot_object_dealloc() argument
706 free(object); in meta_slot_object_dealloc()
718 meta_object_copyin(meta_object_t *object) in meta_object_copyin() argument
729 (void) pthread_rwlock_wrlock(&object->attribute_lock); in meta_object_copyin()
732 if (object->attributes != NULL) { in meta_object_copyin()
736 slot_object = object->clones[object->master_clone_slotnum]; in meta_object_copyin()
738 rv = meta_get_slot_session(object->master_clone_slotnum, &session, in meta_object_copyin()
739 object->creator_session->session_flags); in meta_object_copyin()
749 &(object->attributes), &(object->num_attributes)); in meta_object_copyin()
761 attrs = calloc(object->num_attributes, sizeof (CK_ATTRIBUTE)); in meta_object_copyin()
768 for (i = 0; i < object->num_attributes; i++) { in meta_object_copyin()
770 ((object->attributes[i]).attribute).type; in meta_object_copyin()
772 num_attrs = object->num_attributes; in meta_object_copyin()
811 if (!object->attributes[i].canBeEmptyValue) { in meta_object_copyin()
838 object->attributes, object->num_attributes); in meta_object_copyin()
845 (void) pthread_rwlock_unlock(&object->attribute_lock); in meta_object_copyin()
965 clone_by_create(meta_object_t *object, slot_object_t *new_clone, in clone_by_create() argument
971 if (object->attributes == NULL) { in clone_by_create()
972 rv = meta_object_copyin(object); in clone_by_create()
978 if (object->clone_template == NULL) { in clone_by_create()
979 rv = meta_clone_template_setup(object, object->attributes, in clone_by_create()
980 object->num_attributes); in clone_by_create()
986 if (object->isFreeToken == FREE_ENABLED) { in clone_by_create()
989 object->clone_template, in clone_by_create()
990 object->clone_template_size, B_FALSE, &truevalue); in clone_by_create()
993 object->clone_template, in clone_by_create()
994 object->clone_template_size, B_FALSE, &falsevalue); in clone_by_create()
999 dst_slot_session->hSession, object->clone_template, in clone_by_create()
1000 object->clone_template_size, &(new_clone->hObject)); in clone_by_create()
1004 object->clone_template, object->clone_template_size, in clone_by_create()
1238 clone_by_wrap(meta_object_t *object, slot_object_t *new_clone, in clone_by_wrap() argument
1260 slot_object = object->clones[object->master_clone_slotnum]; in clone_by_wrap()
1262 rv = meta_get_slot_session(object->master_clone_slotnum, in clone_by_wrap()
1263 &src_slot_session, object->creator_session->session_flags); in clone_by_wrap()
1515 meta_object_get_clone(meta_object_t *object, in meta_object_get_clone() argument
1523 if (object->clones[slot_num] != NULL) { in meta_object_get_clone()
1524 *clone = object->clones[slot_num]; in meta_object_get_clone()
1528 if ((object->isSensitive) && (object->isToken) && in meta_object_get_clone()
1539 if ((!object->isExtractable) && (object->attributes == NULL)) { in meta_object_get_clone()
1543 (void) pthread_mutex_lock(&object->clone_create_lock); in meta_object_get_clone()
1546 if (object->clones[slot_num] != NULL) { in meta_object_get_clone()
1547 *clone = object->clones[slot_num]; in meta_object_get_clone()
1556 if (object->tried_create_clone[slot_num]) { in meta_object_get_clone()
1557 (void) pthread_mutex_unlock(&object->clone_create_lock); in meta_object_get_clone()
1565 object->tried_create_clone[slot_num] = B_TRUE; in meta_object_get_clone()
1574 if (object->isSensitive && object->attributes == NULL) { in meta_object_get_clone()
1575 rv = clone_by_wrap(object, newclone, slot_session); in meta_object_get_clone()
1577 rv = clone_by_create(object, newclone, slot_session); in meta_object_get_clone()
1584 object->clones[slot_num] = newclone; in meta_object_get_clone()
1585 meta_slot_object_activate(newclone, slot_session, object->isToken); in meta_object_get_clone()
1590 (void) pthread_mutex_unlock(&object->clone_create_lock); in meta_object_get_clone()
1605 meta_clone_template_setup(meta_object_t *object, in meta_clone_template_setup() argument
1619 (void) pthread_rwlock_rdlock(&object->attribute_lock); in meta_clone_template_setup()
1624 object->isFreeToken == FREE_DISABLED)) { in meta_clone_template_setup()
1640 (void) pthread_rwlock_unlock(&object->attribute_lock); in meta_clone_template_setup()
1645 object->attributes[i].attribute.pValue, in meta_clone_template_setup()
1650 (void) pthread_rwlock_unlock(&object->attribute_lock); in meta_clone_template_setup()
1652 object->clone_template = clone_template; in meta_clone_template_setup()
1653 object->clone_template_size = c; in meta_clone_template_setup()
1672 meta_object_t *object = NULL, *tmp_obj; in meta_object_find_by_handle() local
1691 object = tmp_obj; in meta_object_find_by_handle()
1696 if (object != NULL) { in meta_object_find_by_handle()
1703 if (object != NULL) { in meta_object_find_by_handle()
1711 if (object != NULL) { in meta_object_find_by_handle()
1713 return (object); in meta_object_find_by_handle()
1729 object = tmp_obj; in meta_object_find_by_handle()
1732 if (object != NULL) { in meta_object_find_by_handle()
1739 return (object); in meta_object_find_by_handle()
1745 meta_object_t *object, *tmp_object; in meta_token_object_deactivate() local
1751 object = tokenobject_list_head; in meta_token_object_deactivate()
1754 while (object != NULL) { in meta_token_object_deactivate()
1755 tmp_object = object->next; in meta_token_object_deactivate()
1758 ((object->isPrivate) && (token_type == PRIVATE_TOKEN)) || in meta_token_object_deactivate()
1759 ((!object->isPrivate) && (token_type == PUBLIC_TOKEN))) { in meta_token_object_deactivate()
1760 rv = meta_object_deactivate(object, B_TRUE, B_FALSE); in meta_token_object_deactivate()
1765 rv = meta_object_dealloc(NULL, object, B_FALSE); in meta_token_object_deactivate()
1771 object = tmp_object; in meta_token_object_deactivate()
1823 meta_freeobject_check(meta_session_t *session, meta_object_t *object, in meta_freeobject_check() argument
1835 (!object->isToken && !object->isSensitive && in meta_freeobject_check()
1888 if (object->isToken) in meta_freeobject_check()
1889 object->isFreeToken = FREE_ALLOWED_KEY; in meta_freeobject_check()
1891 object->isFreeToken = FREE_DISABLED; in meta_freeobject_check()
1893 object->isFreeObject = FREE_ALLOWED_KEY; in meta_freeobject_check()
1898 object->isFreeToken = FREE_DISABLED; in meta_freeobject_check()
1899 object->isFreeObject = FREE_DISABLED; in meta_freeobject_check()
1916 meta_freeobject_set(meta_object_t *object, CK_ATTRIBUTE *tmpl, in meta_freeobject_set() argument
1921 if (object->isFreeObject < FREE_ALLOWED_KEY) in meta_freeobject_set()
1926 if (object->isSensitive) { in meta_freeobject_set()
1931 object->isFreeObject = FREE_ENABLED; in meta_freeobject_set()
1935 if (object->isPrivate) { in meta_freeobject_set()
1940 object->isFreeObject = FREE_ENABLED; in meta_freeobject_set()
1944 if (object->isToken) { in meta_freeobject_set()
1945 object->isToken = B_FALSE; in meta_freeobject_set()
1946 object->isFreeToken = FREE_ENABLED; in meta_freeobject_set()
1947 object->isFreeObject = FREE_ENABLED; in meta_freeobject_set()
1949 object->isFreeToken = FREE_DISABLED; in meta_freeobject_set()
1955 if (object->isFreeObject == FREE_ALLOWED_KEY) in meta_freeobject_set()
1956 object->isFreeObject = FREE_DISABLED; in meta_freeobject_set()
1961 object->isFreeToken = FREE_DISABLED; in meta_freeobject_set()
1962 object->isFreeObject = FREE_DISABLED; in meta_freeobject_set()
2010 meta_freeobject_clone_maker(meta_session_t *session, meta_object_t *object, in meta_freeobject_clone_maker() argument
2027 rv = clone_by_create(object, slot_object, slot_session); in meta_freeobject_clone_maker()
2029 object->clones[slotnum] = slot_object; in meta_freeobject_clone_maker()
2050 meta_freeobject_clone(meta_session_t *session, meta_object_t *object) in meta_freeobject_clone() argument
2057 if (object->attributes == NULL) { in meta_freeobject_clone()
2058 rv = meta_object_copyin(object); in meta_freeobject_clone()
2063 if (object->isPrivate) { in meta_freeobject_clone()
2065 CK_ULONG slotnum = object->master_clone_slotnum; in meta_freeobject_clone()
2073 rv = attribute_set_value(attr, object->attributes, in meta_freeobject_clone()
2074 object->num_attributes); in meta_freeobject_clone()
2087 object->clones[slotnum]->hObject, attr, 1, &new_clone); in meta_freeobject_clone()
2100 if (object->clones[keystore_slotnum] == NULL) { in meta_freeobject_clone()
2102 object, keystore_slotnum); in meta_freeobject_clone()
2107 object->master_clone_slotnum = keystore_slotnum; in meta_freeobject_clone()
2116 object->clones[slotnum]->hObject); in meta_freeobject_clone()
2123 object->clones[slotnum]->hObject = new_clone; in meta_freeobject_clone()
2125 object->clones[slotnum] = NULL; in meta_freeobject_clone()
2131 if (object->isSensitive) { in meta_freeobject_clone()
2133 CK_ULONG slotnum = object->master_clone_slotnum; in meta_freeobject_clone()
2138 rv = attribute_set_value(attr, object->attributes, in meta_freeobject_clone()
2139 object->num_attributes); in meta_freeobject_clone()
2148 object->clones[slotnum]->hObject, attr, 1); in meta_freeobject_clone()
2154 if (object->isFreeToken == FREE_ENABLED || failover) { in meta_freeobject_clone()
2156 if (object->clones[keystore_slotnum] == NULL) { in meta_freeobject_clone()
2157 rv = meta_freeobject_clone_maker(session, object, in meta_freeobject_clone()
2162 object->master_clone_slotnum = keystore_slotnum; in meta_freeobject_clone()
2164 object->isFreeToken = FREE_ENABLED; in meta_freeobject_clone()
2167 object->isFreeObject = FREE_ENABLED; in meta_freeobject_clone()
2171 object->isFreeToken = FREE_DISABLED; in meta_freeobject_clone()
2172 object->isFreeObject = FREE_DISABLED; in meta_freeobject_clone()