Exemplo n.º 1
0
void TEE_CloseAndDeletePersistentObject(TEE_ObjectHandle object)
{
    TEE_Result res;

    if (object == TEE_HANDLE_NULL)
        return;

    res = utee_storage_obj_del(object);

    if (res != TEE_SUCCESS)
        TEE_Panic(0);
}
Exemplo n.º 2
0
TEE_Result TEE_CloseAndDeletePersistentObject1(TEE_ObjectHandle object)
{
	TEE_Result res;

	if (object == TEE_HANDLE_NULL)
		return TEE_ERROR_STORAGE_NOT_AVAILABLE;

	res = utee_storage_obj_del((unsigned long)object);

	if (res != TEE_SUCCESS && res != TEE_ERROR_STORAGE_NOT_AVAILABLE)
		TEE_Panic(0);

	return res;
}
Exemplo n.º 3
0
TEE_Result TEE_GetObjectInfo1(TEE_ObjectHandle object, TEE_ObjectInfo *objectInfo)
{
	TEE_Result res;

	res = utee_cryp_obj_get_info((uint32_t)object, objectInfo);

	if (res == TEE_ERROR_CORRUPT_OBJECT) {
		res = utee_storage_obj_del(object);
		if (res != TEE_SUCCESS)
			TEE_Panic(0);
		return TEE_ERROR_CORRUPT_OBJECT;
	}

	if (res != TEE_SUCCESS && res != TEE_ERROR_STORAGE_NOT_AVAILABLE)
		TEE_Panic(res);

	return res;
}
Exemplo n.º 4
0
TEE_Result TEE_RestrictObjectUsage1(TEE_ObjectHandle object, uint32_t objectUsage)
{
	TEE_Result res;

	res = utee_cryp_obj_restrict_usage((uint32_t)object, objectUsage);

	if (res == TEE_ERROR_CORRUPT_OBJECT) {
		res = utee_storage_obj_del(object);
		if (res != TEE_SUCCESS)
			TEE_Panic(0);
		return TEE_ERROR_CORRUPT_OBJECT;
	}

	if (res != TEE_SUCCESS && res != TEE_ERROR_STORAGE_NOT_AVAILABLE)
		TEE_Panic(0);

	return res;
}
Exemplo n.º 5
0
TEE_Result TEE_CopyObjectAttributes1(TEE_ObjectHandle destObject,
			      TEE_ObjectHandle srcObject)
{
	TEE_Result res;
	TEE_ObjectInfo dst_info;
	TEE_ObjectInfo src_info;

	res = utee_cryp_obj_get_info((uint32_t)destObject, &dst_info);
	if (res != TEE_SUCCESS)
		goto err;

	res = utee_cryp_obj_get_info((uint32_t)srcObject, &src_info);
	if (res != TEE_SUCCESS)
		goto err;

	if ((src_info.handleFlags & TEE_HANDLE_FLAG_INITIALIZED) == 0)
		TEE_Panic(0);
	if ((dst_info.handleFlags & TEE_HANDLE_FLAG_PERSISTENT) != 0)
		TEE_Panic(0);
	if ((dst_info.handleFlags & TEE_HANDLE_FLAG_INITIALIZED) != 0)
		TEE_Panic(0);

	res = utee_cryp_obj_copy((uint32_t)destObject, (uint32_t)srcObject);
	if (res != TEE_SUCCESS)
		TEE_Panic(0);

	goto out;

err:
	if (res == TEE_ERROR_CORRUPT_OBJECT) {
		res = utee_storage_obj_del(srcObject);
		if (res != TEE_SUCCESS)
			TEE_Panic(0);
		return TEE_ERROR_CORRUPT_OBJECT;
	}
	if (res == TEE_ERROR_STORAGE_NOT_AVAILABLE)
		return res;
	TEE_Panic(0);
out:
	return TEE_SUCCESS;
}