Lines Matching refs:token
27 static TEE_Result get_db_file_name(struct ck_token *token, in get_db_file_name() argument
30 int n = snprintf(name, size, "token.db.%u", get_token_id(token)); in get_db_file_name()
38 static TEE_Result open_db_file(struct ck_token *token, in open_db_file() argument
44 res = get_db_file_name(token, file, sizeof(file)); in open_db_file()
54 void update_persistent_db(struct ck_token *token) in update_persistent_db() argument
59 res = open_db_file(token, &db_hdl); in update_persistent_db()
64 res = TEE_WriteObjectData(db_hdl, token->db_main, in update_persistent_db()
65 sizeof(*token->db_main)); in update_persistent_db()
133 enum pkcs11_rc setup_so_identity_auth_from_client(struct ck_token *token) in setup_so_identity_auth_from_client() argument
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()
153 enum pkcs11_rc setup_identity_auth_from_pin(struct ck_token *token, in setup_identity_auth_from_pin() argument
165 assert(token->db_main->flags & 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()
254 enum pkcs11_rc verify_identity_auth(struct ck_token *token, in verify_identity_auth() argument
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()
289 void close_persistent_db(struct ck_token *token __unused) in close_persistent_db()
293 static int get_persistent_obj_idx(struct ck_token *token, TEE_UUID *uuid) in get_persistent_obj_idx() argument
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()
309 enum pkcs11_rc create_object_uuid(struct ck_token *token, in create_object_uuid() argument
319 obj->token = token; in create_object_uuid()
323 } while (get_persistent_obj_idx(token, obj->uuid) >= 0); in create_object_uuid()
328 void destroy_object_uuid(struct ck_token *token __maybe_unused, in destroy_object_uuid()
331 assert(get_persistent_obj_idx(token, obj->uuid) < 0); in destroy_object_uuid()
337 enum pkcs11_rc get_persistent_objects_list(struct ck_token *token, in get_persistent_objects_list() argument
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()
353 enum pkcs11_rc unregister_persistent_object(struct ck_token *token, in unregister_persistent_object() argument
365 idx = get_persistent_obj_idx(token, uuid); in unregister_persistent_object()
372 ((token->db_objs->count - 1) * sizeof(TEE_UUID)), in unregister_persistent_object()
377 res = open_db_file(token, &db_hdl); in unregister_persistent_object()
388 TEE_MemMove(ptr, token->db_objs, in unregister_persistent_object()
396 &token->db_objs->uuids[idx + 1], in unregister_persistent_object()
404 TEE_Free(token->db_objs); in unregister_persistent_object()
405 token->db_objs = ptr; in unregister_persistent_object()
415 enum pkcs11_rc register_persistent_object(struct ck_token *token, in register_persistent_object() argument
424 if (get_persistent_obj_idx(token, uuid) >= 0) in register_persistent_object()
427 count = token->db_objs->count; in register_persistent_object()
428 ptr = TEE_Realloc(token->db_objs, 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()
441 res = open_db_file(token, &db_hdl); 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()
580 struct ck_token *token = get_token(token_id); in init_persistent_db() local
590 if (!token) in init_persistent_db()
593 LIST_INIT(&token->object_list); in init_persistent_db()
600 res = open_db_file(token, &db_hdl); in init_persistent_db()
644 obj = create_token_object(NULL, uuid, token); in init_persistent_db()
648 LIST_INSERT_HEAD(&token->object_list, obj, link); in init_persistent_db()
664 res = get_db_file_name(token, file, sizeof(file)); in init_persistent_db()
703 token->db_main = db_main; in init_persistent_db()
704 token->db_objs = db_objs; in init_persistent_db()
707 return token; in init_persistent_db()