Lines Matching +full:- +full:- +full:count
1 // SPDX-License-Identifier: BSD-2-Clause
3 * Copyright (c) 2018-2020, Linaro Limited
64 res = TEE_WriteObjectData(db_hdl, token->db_main, in update_persistent_db()
65 sizeof(*token->db_main)); in update_persistent_db()
94 memset(hash + sz, 0, TEE_MAX_HASH_SIZE - sz); in do_hash()
145 TEE_MemMove(&token->db_main->so_identity, &identity, sizeof(identity)); in setup_so_identity_auth_from_client()
146 token->db_main->flags |= PKCS11_CKFT_PROTECTED_AUTHENTICATION_PATH; in setup_so_identity_auth_from_client()
148 token->db_main->so_pin_salt = 0; in setup_so_identity_auth_from_client()
165 assert(token->db_main->flags & in setup_identity_auth_from_pin()
197 EMSG("Invalid PIN ACL string - login"); in setup_identity_auth_from_pin()
204 EMSG("Invalid PIN ACL string - colon"); in setup_identity_auth_from_pin()
211 EMSG("Invalid PIN ACL string - client id"); in setup_identity_auth_from_pin()
222 token->db_main->so_pin_count = 0; in setup_identity_auth_from_pin()
223 token->db_main->so_pin_salt = 0; in setup_identity_auth_from_pin()
229 TEE_MemMove(&token->db_main->so_identity, &identity, in setup_identity_auth_from_pin()
233 token->db_main->user_pin_count = 0; in setup_identity_auth_from_pin()
234 token->db_main->user_pin_salt = 0; in setup_identity_auth_from_pin()
241 TEE_MemMove(&token->db_main->user_identity, &identity, in setup_identity_auth_from_pin()
248 token->db_main->flags &= ~flags_clear; in setup_identity_auth_from_pin()
249 token->db_main->flags |= flags_set; in setup_identity_auth_from_pin()
260 assert(token->db_main->flags & in verify_identity_auth()
271 if (TEE_MemCompare(&token->db_main->so_identity, &identity, in verify_identity_auth()
275 if (TEE_MemCompare(&token->db_main->user_identity, &identity, in verify_identity_auth()
298 return -1; in get_persistent_obj_idx()
300 for (i = 0; i < token->db_objs->count; i++) in get_persistent_obj_idx()
301 if (!TEE_MemCompare(token->db_objs->uuids + i, in get_persistent_obj_idx()
305 return -1; in get_persistent_obj_idx()
312 assert(!obj->uuid); in create_object_uuid()
314 obj->uuid = TEE_Malloc(sizeof(TEE_UUID), in create_object_uuid()
316 if (!obj->uuid) in create_object_uuid()
319 obj->token = token; in create_object_uuid()
322 TEE_GenerateRandom(obj->uuid, sizeof(TEE_UUID)); in create_object_uuid()
323 } while (get_persistent_obj_idx(token, obj->uuid) >= 0); in create_object_uuid()
331 assert(get_persistent_obj_idx(token, obj->uuid) < 0); in destroy_object_uuid()
333 TEE_Free(obj->uuid); in destroy_object_uuid()
334 obj->uuid = NULL; in destroy_object_uuid()
342 *size = token->db_objs->count * sizeof(TEE_UUID); in get_persistent_objects_list()
348 TEE_MemMove(array, token->db_objs->uuids, *size); in get_persistent_objects_list()
359 int count = 0; in unregister_persistent_object() local
372 ((token->db_objs->count - 1) * sizeof(TEE_UUID)), in unregister_persistent_object()
388 TEE_MemMove(ptr, token->db_objs, in unregister_persistent_object()
392 ptr->count--; in unregister_persistent_object()
393 count = ptr->count - idx; in unregister_persistent_object()
395 TEE_MemMove(&ptr->uuids[idx], in unregister_persistent_object()
396 &token->db_objs->uuids[idx + 1], in unregister_persistent_object()
397 count * sizeof(TEE_UUID)); in unregister_persistent_object()
401 ptr->count * sizeof(TEE_UUID)); in unregister_persistent_object()
404 TEE_Free(token->db_objs); in unregister_persistent_object()
405 token->db_objs = ptr; in unregister_persistent_object()
422 int count = 0; in register_persistent_object() local
427 count = token->db_objs->count; in register_persistent_object()
428 ptr = TEE_Realloc(token->db_objs, in register_persistent_object()
430 ((count + 1) * sizeof(TEE_UUID))); in register_persistent_object()
434 token->db_objs = ptr; in register_persistent_object()
435 TEE_MemMove(token->db_objs->uuids + count, uuid, sizeof(TEE_UUID)); in register_persistent_object()
439 count * sizeof(TEE_UUID); in register_persistent_object()
454 token->db_objs->count++; in register_persistent_object()
456 res = TEE_WriteObjectData(db_hdl, token->db_objs, in register_persistent_object()
458 token->db_objs->count * sizeof(TEE_UUID)); in register_persistent_object()
460 token->db_objs->count--; in register_persistent_object()
472 TEE_ObjectHandle hdl = obj->attribs_hdl; in load_persistent_object_attributes()
477 if (obj->attributes) in load_persistent_object_attributes()
482 obj->uuid, sizeof(*obj->uuid), in load_persistent_object_attributes()
524 obj->attributes = attr; in load_persistent_object_attributes()
532 if (obj->attribs_hdl == TEE_HANDLE_NULL) in load_persistent_object_attributes()
540 TEE_Free(obj->attributes); in release_persistent_object_attributes()
541 obj->attributes = NULL; in release_persistent_object_attributes()
551 assert(obj && obj->attributes); in update_persistent_object_attributes()
554 obj->uuid, sizeof(*obj->uuid), in update_persistent_object_attributes()
561 size = sizeof(struct obj_attrs) + obj->attributes->attrs_size; in update_persistent_object_attributes()
563 res = TEE_WriteObjectData(hdl, obj->attributes, size); in update_persistent_object_attributes()
593 LIST_INIT(&token->object_list); in init_persistent_db()
618 if (db_objs->count > 0) { in init_persistent_db()
619 size += db_objs->count * sizeof(TEE_UUID); in init_persistent_db()
625 size -= sizeof(*db_objs); in init_persistent_db()
626 res = TEE_ReadObjectData(db_hdl, db_objs->uuids, size, in init_persistent_db()
628 if (res || size != (db_objs->count * sizeof(TEE_UUID))) in init_persistent_db()
632 for (idx = 0; idx < db_objs->count; idx++) { in init_persistent_db()
642 TEE_MemMove(uuid, &db_objs->uuids[idx], sizeof(*uuid)); in init_persistent_db()
648 LIST_INSERT_HEAD(&token->object_list, obj, link); in init_persistent_db()
657 TEE_MemFill(db_main->label, '*', sizeof(db_main->label)); in init_persistent_db()
659 db_main->flags = PKCS11_CKFT_SO_PIN_TO_BE_CHANGED | in init_persistent_db()
703 token->db_main = db_main; in init_persistent_db()
704 token->db_objs = db_objs; in init_persistent_db()