Пример #1
0
TEE_Result TEE_OpenPersistentObject(uint32_t storageID, void *objectID,
				    uint32_t objectIDLen, uint32_t flags,
				    TEE_ObjectHandle *object)
{
	TEE_Result res;
	uint32_t obj;

	if (storageID != TEE_STORAGE_PRIVATE) {
		res = TEE_ERROR_ITEM_NOT_FOUND;
		goto out;
	}

	if (!objectID) {
		res = TEE_ERROR_ITEM_NOT_FOUND;
		goto out;
	}

	if (objectIDLen > TEE_OBJECT_ID_MAX_LEN) {
		res = TEE_ERROR_BAD_PARAMETERS;
		goto out;
	}

	if (!object) {
		res = TEE_ERROR_BAD_PARAMETERS;
		goto out;
	}

	res = utee_storage_obj_open(storageID, objectID, objectIDLen, flags,
				     &obj);
	if (res == TEE_SUCCESS)
		*object = (TEE_ObjectHandle)(uintptr_t)obj;

out:
	if (res != TEE_SUCCESS &&
	    res != TEE_ERROR_ITEM_NOT_FOUND &&
	    res != TEE_ERROR_ACCESS_CONFLICT &&
	    res != TEE_ERROR_OUT_OF_MEMORY &&
	    res != TEE_ERROR_CORRUPT_OBJECT &&
	    res != TEE_ERROR_STORAGE_NOT_AVAILABLE)
		TEE_Panic(0);

	return res;
}
Пример #2
0
TEE_Result TEE_OpenPersistentObject(uint32_t storageID, void *objectID,
                                    size_t objectIDLen, uint32_t flags,
                                    TEE_ObjectHandle *object)
{
    if (storageID != TEE_STORAGE_PRIVATE)
        return TEE_ERROR_ITEM_NOT_FOUND;

    if (objectID == NULL)
        return TEE_ERROR_ITEM_NOT_FOUND;

    if (objectIDLen > TEE_OBJECT_ID_MAX_LEN)
        TEE_Panic(0);

    if (object == NULL)
        return TEE_ERROR_BAD_PARAMETERS;

    return utee_storage_obj_open(storageID, objectID, objectIDLen, flags,
                                 object);
}