开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
forked from OpenCloudOS Stream/qemu
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (2)
标签 (1)
master
rva23
ocs-2309
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (2)
标签 (1)
master
rva23
ocs-2309
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (2)
标签 (1)
master
rva23
ocs-2309
qemu
/
1148-target-arm-kvm-rme-Add-measureme...
qemu
/
1148-target-arm-kvm-rme-Add-measureme...
1148-target-arm-kvm-rme-Add-measurement-algorithm-propert.patch 5.23 KB
一键复制 编辑 原始数据 按行查看 历史
houmingyong 提交于 2025年09月22日 10:48 +08:00 . Support ARM CCA confidential VM
From 2c8e4906101c4f3069101e133e7177b02bf557ac Mon Sep 17 00:00:00 2001
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
Date: 2022年10月27日 19:22:48 +0100
Subject: [PATCH 14/29] target/arm/kvm-rme: Add measurement algorithm property
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reference:https://git.codelinaro.org/linaro/dcap/qemu/-/commit/26ed0bafc44a8d4d8fcc46a1ee7a2b8aa35b1c33
This option selects which measurement algorithm to use for attestation.
Supported values are SHA256 and SHA512. Default to SHA512 arbitrarily.
SHA512 is generally faster on 64-bit architectures. On a few arm64 CPUs
I tested SHA256 is much faster, but that's most likely because they only
support acceleration via FEAT_SHA256 (Armv8.0) and not FEAT_SHA512
(Armv8.2). Future CPUs supporting RME are likely to also support
FEAT_SHA512.
Cc: Eric Blake <eblake@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Daniel P. Berrangé <berrange@redhat.com>
Cc: Eduardo Habkost <eduardo@habkost.net>
Acked-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Signed-off-by: houmingyong <houmingyong@huawei.com>
---
qapi/qom.json | 20 +++++++++++++++++++-
target/arm/kvm-rme.c | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 57 insertions(+), 1 deletion(-)
diff --git a/qapi/qom.json b/qapi/qom.json
index b85bb4673..a980568be 100644
--- a/qapi/qom.json
+++ b/qapi/qom.json
@@ -909,6 +909,20 @@
'data': { '*cpu-affinity': ['uint16'],
'*node-affinity': ['uint16'] } }
+##
+# @RmeGuestMeasurementAlgorithm:
+#
+# @sha256: Use the SHA256 algorithm
+#
+# @sha512: Use the SHA512 algorithm
+#
+# Algorithm to use for realm measurements
+#
+# Since: 10.0
+##
+{ 'enum': 'RmeGuestMeasurementAlgorithm',
+ 'data': ['sha256', 'sha512'] }
+
##
# @RmeGuestProperties:
#
@@ -918,10 +932,14 @@
# This optional parameter allows to uniquely identify the VM instance
# during attestation. (default: all-zero)
#
+# @measurement-algorithm: Realm measurement algorithm
+# (default: sha512)
+#
# Since: 10.0
##
{ 'struct': 'RmeGuestProperties',
- 'data': { '*personalization-value': 'str' } }
+ 'data': { '*personalization-value': 'str',
+ '*measurement-algorithm': 'RmeGuestMeasurementAlgorithm' } }
##
# @ObjectType:
diff --git a/target/arm/kvm-rme.c b/target/arm/kvm-rme.c
index e8976e474..5e785fa3b 100644
--- a/target/arm/kvm-rme.c
+++ b/target/arm/kvm-rme.c
@@ -36,6 +36,7 @@ struct RmeGuest {
char *personalization_value_str;
uint8_t personalization_value[ARM_RME_CONFIG_RPV_SIZE];
+ RmeGuestMeasurementAlgorithm measurement_algo;
RmeRamRegion init_ram;
};
@@ -59,6 +60,19 @@ static int rme_configure_one(RmeGuest *guest, uint32_t cfg, Error **errp)
memcpy(args.rpv, guest->personalization_value, ARM_RME_CONFIG_RPV_SIZE);
cfg_str = "personalization value";
break;
+ case ARM_RME_CONFIG_HASH_ALGO:
+ switch (guest->measurement_algo) {
+ case RME_GUEST_MEASUREMENT_ALGORITHM_SHA256:
+ args.hash_algo = ARM_RME_CONFIG_MEASUREMENT_ALGO_SHA256;
+ break;
+ case RME_GUEST_MEASUREMENT_ALGORITHM_SHA512:
+ args.hash_algo = ARM_RME_CONFIG_MEASUREMENT_ALGO_SHA512;
+ break;
+ default:
+ g_assert_not_reached();
+ }
+ cfg_str = "hash algorithm";
+ break;
default:
g_assert_not_reached();
}
@@ -77,6 +91,7 @@ static int rme_configure(Error **errp)
size_t option;
const uint32_t config_options[] = {
ARM_RME_CONFIG_RPV,
+ ARM_RME_CONFIG_HASH_ALGO,
};
for (option = 0; option < ARRAY_SIZE(config_options); option++) {
@@ -248,12 +263,34 @@ static void rme_set_rpv(Object *obj, const char *value, Error **errp)
guest->personalization_value_str = g_strdup(value);
}
+static int rme_get_measurement_algo(Object *obj, Error **errp)
+{
+ RmeGuest *guest = RME_GUEST(obj);
+
+ return guest->measurement_algo;
+}
+
+static void rme_set_measurement_algo(Object *obj, int algo, Error **errp)
+{
+ RmeGuest *guest = RME_GUEST(obj);
+
+ guest->measurement_algo = algo;
+}
+
static void rme_guest_class_init(ObjectClass *oc, void *data)
{
object_class_property_add_str(oc, "personalization-value", rme_get_rpv,
rme_set_rpv);
object_class_property_set_description(oc, "personalization-value",
"Realm personalization value (64 bytes encodede in base64)");
+
+ object_class_property_add_enum(oc, "measurement-algorithm",
+ "RmeGuestMeasurementAlgorithm",
+ &RmeGuestMeasurementAlgorithm_lookup,
+ rme_get_measurement_algo,
+ rme_set_measurement_algo);
+ object_class_property_set_description(oc, "measurement-algorithm",
+ "Realm measurement algorithm ('sha256', 'sha512')");
}
static void rme_guest_init(Object *obj)
@@ -263,6 +300,7 @@ static void rme_guest_init(Object *obj)
exit(1);
}
rme_guest = RME_GUEST(obj);
+ rme_guest->measurement_algo = RME_GUEST_MEASUREMENT_ALGORITHM_SHA512;
}
static void rme_guest_finalize(Object *obj)
--
2.43.0
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

QEMU is a FAST! processor emulator
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/pkgagent/qemu.git
git@gitee.com:pkgagent/qemu.git
pkgagent
qemu
qemu
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /