From patchwork Wed Feb 28 21:10:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10249799 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BA04E60212 for ; Wed, 28 Feb 2018 21:12:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A84DA284BD for ; Wed, 28 Feb 2018 21:12:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9CB2428DB5; Wed, 28 Feb 2018 21:12:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1BB8B284BD for ; Wed, 28 Feb 2018 21:12:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934794AbeB1VMK (ORCPT ); Wed, 28 Feb 2018 16:12:10 -0500 Received: from mail-dm3nam03on0068.outbound.protection.outlook.com ([104.47.41.68]:8681 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S934841AbeB1VLs (ORCPT ); Wed, 28 Feb 2018 16:11:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=LwxFce27HulRljlKcrgU7P+t8JVWucZlaxzH3GOZJtY=; b=uuliEHMLuF9Pgd89UOGmh+ruNhVYpHngeIxg50FyWzYKSVYgxOzNN9TypUlpc/GrdNOm2ghsRtFzmZ+tvogJtafE2PSr2fkKLVcdUzEs2uDUkV9S4J45Bk8wsIBlCXWamtFGl1HjvCbTnsfBto0SwOoM5CZ2qNN4pktOPhpG+4M= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0155.namprd12.prod.outlook.com (2a01:111:e400:50ce::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Wed, 28 Feb 2018 21:11:15 +0000 From: Brijesh Singh To: qemu-devel@nongnu.org Cc: Alistair Francis , Christian Borntraeger , Cornelia Huck , "Daniel P . Berrange" , "Dr. David Alan Gilbert" , "Michael S. Tsirkin" , "Edgar E. Iglesias" , Eduardo Habkost , Eric Blake , kvm@vger.kernel.org, Marcel Apfelbaum , Markus Armbruster , Paolo Bonzini , Peter Crosthwaite , Peter Maydell , Richard Henderson , Stefan Hajnoczi , Thomas Lendacky , Borislav Petkov , Alexander Graf , Bruce Rogers , Brijesh Singh Subject: [PATCH v10 23/28] qmp: add query-sev-launch-measure command Date: Wed, 28 Feb 2018 15:10:23 -0600 Message-Id: <20180228211028.83970-24-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180228211028.83970-1-brijesh.singh@amd.com> References: <20180228211028.83970-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM5PR10CA0008.namprd10.prod.outlook.com (2603:10b6:4:2::18) To DM2PR12MB0155.namprd12.prod.outlook.com (2a01:111:e400:50ce::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: bf8b86fc-95d4-4675-43f7-08d57eefcdd8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM2PR12MB0155; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 3:uaXwph/a5LJgCHE4QEXh7SQQ5YVs3ZlGPVlEc4V6kYj7zkv1726oqodAygyiv1GwTM5oMgEs8dH4CK2Ahhu/S7Kj9IwE1nWxk2n1ajybJLqd8XZHw55i5lS2LUdb0J3NaOqbMgnLTw6xL6GjCvSpKpkTFfVqpYz7yn8FBTa7+ni3PwIeJ48E4RRg7VngldTyOsnERXKRHXfsfYZW7GV5tGugpNveeTZuQeyV8rbXbbsij+tF+8e+baWaW16JPCC+; 25:JroxBXMFBzLlOhP8NKDLIHN62ApR9vNa7Fmv5gvv/jI2TenHZjKKAPlptjgK//mi4r3KJgZCu7xH6UeQHBQwDgTJG651RzUuZwZgl2t1cW5IIzhXOYNRjUtZ/gjFzVdSOQVBO923LYLHYmKWUHT5/hXLh6e6khOl3nYlOAin02bNf4FlAfKIo8RV0Z8mz+TpBSIxY+/dPeokliAbgzWZAzd8RotYc0CUNa92O/fgEPzI+UG8DqMzjECXnGv7Ev0fnrU/kWENAh0CUs5bqFp81qw9cQL9sAVjk+dp8JUowXFbAIPpgldDSdwMK10hacdSYbhofBrtodUhBrWwSTNx1Q==; 31:WM+2hy55EJ1aAZQfdcLs2nZEgkC/Io6rfXkWtFSsdclBFM3wgaO3TTyFIYONfgMLu1mSC+5MOhiVa/fCjO29lgFKUWWJ+EtqVgYYh5hM1S2bRF4cXl4UnXaXVqRJsXB84OJ4MJwczr7dj+i0+yHIOR0srj/2d9ZOtPsjufFUdZv5VNF6SMuHYuzqO7eJCRXGWPoB570tMLxJqtoPCVB81yPxYNLDDWScVmlQbZNaX1o= X-MS-TrafficTypeDiagnostic: DM2PR12MB0155: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 20:VlSPDZu1ptpTp1R/A2vnw+PhP6qN+UPERx+ZS9L3fQNvyqek1IAWArBJkgoiFJ6u0ZULIJagXbdHPqYT1q+icgCw0heozQME0tZTNbt61KeNTd8xA16JnkWZV2dVRrwpFDm+B8WzaERC4hwcL1I3oFzMf+Gg3BJpSn1+wmfYau9WT7iUEcPyO7j67FYr7kPyvXAZrlqSTdy3npCQgy0Hfu5o2BUuJ5BnBtcNh+szrWOEF0YUIiqof4pmRwcSP+HpKyg04sU1JMFpI+KBx3JKMXz4rZ+GbSc7R51YPLek3Y5g7ppK5KvVZNz+YFUlZ4NJC7Z7JpU9GWmEnb8UhSFpSHibaJASE5JNMbuytcowTkfrTKtzxQnh0vw4JyyXXgkVdaMoVXPm5DjzEAQ4Xv2DA4XNjN4MIEc7avyU87y/UMr49EXV7RZZg6xho71oJvQC4M96ZTpTlAl8xTqsFhj1k+8R0RkHZIKeJDbHQghtg4VoW3rj/zmsmvW4V5aGQ582; 4:Lek1EOMefvVcM2InDeVWN5oVQ1CJ1zN9mfVVpUXRZAQ52a4xoUt13XcfTdwzt5Dqy2K8kLrKSAw3dtIt0VFFDdk98eRk6PSbncDpJHOwNCU5Ra15NSRNCRQfG3cRtJ2u2rP3ZEm6yKcZSd7ItqR1I+aICLnFTCXvfWIFmUo3gWneUS2A4J1pC1bbLd/shYrEUL78TRF5gVpFxLmKAJ1WXxLj12AYW4JXO8iqQ9wf/bOO59VnjvpDqEq4vP/JMj2KottS9kzKfi+4+L4ZRaRfjwHpBv+cTidckuyuhVLkEvf4Bh0o3lV8CTC/B+93dv9V X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(8121501046)(5005006)(3231220)(944501219)(52105095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041288)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:DM2PR12MB0155; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0155; X-Forefront-PRVS: 0597911EE1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39860400002)(39380400002)(396003)(346002)(366004)(376002)(189003)(199004)(6486002)(6116002)(1076002)(2351001)(36756003)(16526019)(54906003)(53416004)(26005)(53936002)(66066001)(186003)(47776003)(59450400001)(2361001)(478600001)(8666007)(316002)(81166006)(50226002)(8676002)(8936002)(386003)(106356001)(2870700001)(97736004)(5660300001)(2950100002)(6666003)(23676004)(305945005)(4326008)(76176011)(7736002)(39060400002)(8656006)(105586002)(68736007)(50466002)(575784001)(7696005)(25786009)(52116002)(3846002)(2906002)(86362001)(81156014)(7416002)(6916009); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0155; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU1OzIzOlIvMTRqZStUUFZTRit5RmJiYmJKWGpzdVBY?= =?utf-8?B?Vk9hdXVXSmdRS0E1SlB4eDNKMDQ2SnhmUEtuMEY1ODZKdEJGeFJTdzFUKzRi?= =?utf-8?B?RTl6QlVQQTlJSzQyeFlXQ3lnemh4bkE5VUtSbTFjTjlmQjZxdE54YTQ1UXVn?= =?utf-8?B?b0dPT1FDbHI1SmI1SVhKRmpnMzlob3ljTXh2NmV0NlR6RitxUm5Ya2o4Vjlz?= =?utf-8?B?dlJwWUIxS3pIckRMbyt3SGp2T09nY2gyeCtkZ1pscnV0Q0RUWVh6VEIwdTgv?= =?utf-8?B?azN0b3lmMzVKbXNEd1g0aS9JYVc0eVVtNDNQMVBYVFgzaytxUkxtbFV3WjNV?= =?utf-8?B?NUEvWWk0TzM5c1UxOXVIb2I0R29YcWJ3eUVJSGcwa0F5M0RXWjNkMWlvYVlX?= =?utf-8?B?azFVK3ppUkQyTzRvb2NWcE1GR1RVR0w1a3NKTHJkWFVtODFJVFFFZUdBUTUw?= =?utf-8?B?Rm5SSHRKaktZNGtrcXZYZ1YwRk5XVk8rSUxoZmJUZE0wUy9idUEyNERjQzM3?= =?utf-8?B?bmdIbTlsL3lRdjVJb3hkWEFucE9SVms2RktWamxqNCtpclRLRzdSbUVuQ1Y3?= =?utf-8?B?RFVnSzJ2di8yV2JEK1g4UGErSHlUK0hnRGZZY3hTaVhGQ09tT3l2RDFJckxv?= =?utf-8?B?ZERObEtqZW8vYUU1MDJxR2FHK2huUmgvVWJqQndaTzdJek4yQUlJZ3Rucm1F?= =?utf-8?B?OE42eDJLWU43QkhWQ3EvbzdoNVZjckx0MHlmOU5STzBDYlJhRDRFbkcyaGNL?= =?utf-8?B?RmVHWEMyQmNBLytjdmJ6RlB2bm5WZU9NRHVMYlkvMFRPMUQ0TkdhY3N1UUdw?= =?utf-8?B?Smtuekl6NGl6ZkdndUdxUHFBY01Tay93ZENhOXE5Z1VWMUVPZlJ6Ly9ha1B1?= =?utf-8?B?NXFORTVhNHVidmhvcHZrbDNFbW1vV2lBV2J0ZDJ0RlMvWENGZk9HalBqbUtl?= =?utf-8?B?cEY0R1ZGY2Q2YUIxUlRHTHByTDAvOFI4dVIxSGZUVm1pcFBTQloxRExxYlFX?= =?utf-8?B?aWVvNFFZdGJ3UlZHYmtGOWRCUWYzM3M5YWF1M2VTOC9oOU9HN0s2L0orSkJj?= =?utf-8?B?ZGQ3T0o4RHEyVU1aNFVDSEdVeTNQbkhMNk1QZi82Z1lLUGp2Z2F6WFJhdWty?= =?utf-8?B?VytGSXhKYnQ4VXhJVTgxU3QxSmRxbzdqak1xSUFkcUVlak5EU016VVlkODhG?= =?utf-8?B?b1E1Z3o2SmcvMGk4d3REcTBxRU5WUkxzYXJXQnc4cGRxVXFobElPOVUxUVlm?= =?utf-8?B?ekRvMkluSXJkNmhqNFAvMHFCcHloVS9SaHB6NitDT3MxYmM5REFnb1FUbUxl?= =?utf-8?B?OFRjZnprTnR0TVFNWDJtMGIzRHVLWHJyWUZ1cmI1UzRJNS92LzR3YUR6Z05L?= =?utf-8?B?SGxDNm9lS0RCYXArVllCZ3VQTi9TaDZiV2c5L2xqME8xNDNPMFFhRXBCeFBx?= =?utf-8?B?TE9McU1objg2R3g2cHlSSXJLTnlKT09hS05IVVlNTXN2L3pFbVVmZWExRGpM?= =?utf-8?B?ZUZFamQ3NGdHTHk0cy9XMG4vL3pQSU8xV2t3aUtBalVTSTdycTZrY1RQeGpQ?= =?utf-8?B?VC9yV3MvbitRditUVTVNeFZqOEQwRFA1Vm91Kzd5VWx0VlpVaVJBZ2l5YnlR?= =?utf-8?B?L1ZsZ1lObXRBK25zUklCVmRFSk5SNS85VVF6WDhHZ09IcTE5SWY1RTZockFs?= =?utf-8?B?ZGdhSEZEOVRiTm1lUGorQkZVSVhvK0VwbHIzVDhaSjdYaWZZTSs2bTFYWGxH?= =?utf-8?Q?N5bnscS4FBrDYRtjknECkZPmQemu4CnYKPFxY=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 6:eme7P3tEhgr2VLGktMObijfNrXt8n2NXKoRrdV3aCrTpN/PUCVye0WHtnhWJ/ZkD5KAYYuRQSG4351TBz8EJ5hV2m24ofxruQRMUwvY9/8XNxWtsOWHTtYcRAi73R/bEWMV9sJQdNlnLKQq5KvqgMrp84gnsPvDJcUI+fHNcoQ2OD9VLt6RMTHyzCTK6iM6zRSrg4Xf8sSlzeOhXI6FKVYMEJTJt4F06tmQAse2vgMaPqdpsYQmOe6eMyGPEWh55Gk0vjjJybu6CixXVvDlkrlB7fkw5i6vWnzIT9w6jiq5rP51ept0eebJgOGNGUZa6/RNmB2n9oFl/PLvXu9mYLZ8j1MIKRx4aZAjCCzFLXEY=; 5:5TZgN2V+ZU/eL6kLDzXf37QBLPu6Tv02w+SzFXr+Z3L7b36GTSDfqWfMqmisXQpZpd5+C8h+ca58kb34HapISRhJzQTotT4Uy0puixPbDvwqcPQcq424qE7VkbrXQdxtCtFhFiTN684Os7inZm1yakS1YHAMKKxWbFIa/95kS10=; 24:rlk79NgU7cOcdnzKNOWjf2enoHN8fEs+vuT7kC/SX0CVLz18OnpDP/FRRXHK412mdto96duIatzPy5IUKuaDUumUkp9pKt2Sfjw2I35pCj0=; 7:FWtn6JzeVdS0bp+YFjBhrw/IHjNtLZPTv8IYFPoc52ozd8J6J1G/txrr0FpaniCkzFDYYSHV/SVXBiGXIZZYUtMnLkTHuJYsjuvwuxavadgujpVXkYsBVKl1MCYi94HYxGtgvWxKqCFLD0LTAK9L7RH08ljzO1gs/NUZnZzFbptIxRtnDnIMqQGf2wjYJI1nGeNRUKO3cHvBdyv1RR75Juv7aGdFfQ12NNxedOqYFaBa60/IzykRKy9kFRnvOHmw SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0155; 20:KSBzV3Pj1KcQOftqJd7ynlRvGR7a4lj9XfN8YqZ5y2rjJMlFbhsZhuFtjJYTVXqKM6PMyXIWXH2ehtWDpqZXpMKBKdLCBuoDn3AGhHehdzqLjGGyTLxm5DyHBjzSMimSBwrBm2f7zgCho8NWSUmQvR8Tt17yvTt2OG4UyikwC140wUO1OSwnC7/+nOeKl8GVN5i3qThR4S/8muWqvjwkH9Gfbu8LxiB/j3WuCE4+c8hRuVVa5QBM3o6G3jqnFVwN X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2018 21:11:15.0922 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bf8b86fc-95d4-4675-43f7-08d57eefcdd8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0155 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The command can be used by libvirt to retrieve the measurement of SEV guest. This measurement is a signature of the memory contents that was encrypted through the LAUNCH_UPDATE_DATA. Cc: "Daniel P. Berrangé" Cc: "Dr. David Alan Gilbert" Cc: Markus Armbruster Signed-off-by: Brijesh Singh Reviewed-by: Eric Blake --- monitor.c | 7 +++++++ qapi-schema.json | 29 +++++++++++++++++++++++++++++ target/i386/monitor.c | 17 +++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/monitor.c b/monitor.c index 356d550aaf2d..d0ebd5906d9d 100644 --- a/monitor.c +++ b/monitor.c @@ -984,6 +984,7 @@ static void qmp_unregister_commands_hack(void) #ifndef TARGET_I386 qmp_unregister_command(&qmp_commands, "rtc-reset-reinjection"); qmp_unregister_command(&qmp_commands, "query-sev"); + qmp_unregister_command(&qmp_commands, "query-sev-launch-measure"); #endif #ifndef TARGET_S390X qmp_unregister_command(&qmp_commands, "dump-skeys"); @@ -4164,6 +4165,12 @@ SevInfo *qmp_query_sev(Error **errp) error_setg(errp, QERR_FEATURE_DISABLED, "query-sev"); return NULL; } + +SevLaunchMeasureInfo *qmp_query_sev_launch_measure(Error **errp) +{ + error_setg(errp, QERR_FEATURE_DISABLED, "query-sev-launch-measure"); + return NULL; +} #endif #ifndef TARGET_S390X diff --git a/qapi-schema.json b/qapi-schema.json index 467a06460ead..facf2138df6b 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3250,3 +3250,32 @@ # ## { 'command': 'query-sev', 'returns': 'SevInfo' } + +## +# @SevLaunchMeasureInfo: +# +# SEV Guest Launch measurement information +# +# @data: the measurement value encoded in base64 +# +# Since: 2.12 +# +## +{ 'struct': 'SevLaunchMeasureInfo', 'data': {'data': 'str'} } + +## +# @query-sev-launch-measure: +# +# Query the SEV guest launch information. +# +# Returns: The @SevLaunchMeasureInfo for the guest +# +# Since: 2.12 +# +# Example: +# +# -> { "execute": "query-sev-launch-measure" } +# <- { "return": { "data": "4l8LXeNlSPUDlXPJG5966/8%YZ" } } +# +## +{ 'command': 'query-sev-launch-measure', 'returns': 'SevLaunchMeasureInfo' } diff --git a/target/i386/monitor.c b/target/i386/monitor.c index 64d459f80f0c..577d50eebaaa 100644 --- a/target/i386/monitor.c +++ b/target/i386/monitor.c @@ -720,3 +720,20 @@ void hmp_info_sev(Monitor *mon, const QDict *qdict) monitor_printf(mon, "SEV is not enabled\n"); } } + +SevLaunchMeasureInfo *qmp_query_sev_launch_measure(Error **errp) +{ + char *data; + SevLaunchMeasureInfo *info; + + data = sev_get_launch_measurement(); + if (!data) { + error_setg(errp, "Measurement is not available"); + return NULL; + } + + info = g_malloc0(sizeof(*info)); + info->data = data; + + return info; +}