From patchwork Thu Mar 8 12:48:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10267965 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 E89C46016D for ; Thu, 8 Mar 2018 12:50:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D7E25298FE for ; Thu, 8 Mar 2018 12:50:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CC4B129903; Thu, 8 Mar 2018 12:50:29 +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 58CF2298FE for ; Thu, 8 Mar 2018 12:50:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965622AbeCHMu1 (ORCPT ); Thu, 8 Mar 2018 07:50:27 -0500 Received: from mail-cys01nam02on0080.outbound.protection.outlook.com ([104.47.37.80]:12480 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S935582AbeCHMuZ (ORCPT ); Thu, 8 Mar 2018 07:50:25 -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=/pwiFzm9XLlAcYuv79istr6t1tp11+uEJEkKvsJE90Q=; b=WtYlTA+OD+W0H3uwFLXQ5nHd4mANlF7lOmTk5cAajnC8+xf1gnTdGB5S0FX3uH+pHHSk4fy6wrW8hz/EjBW+1vWEVoWWdKROxj14JK6w+zYjIPuoKyFcgxfl+D5UIVElhy7YzU9PwROtrN0thZ0a8dgI3dyaTMLS5202+7uAK44= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.548.13; Thu, 8 Mar 2018 12:50:20 +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 v12 23/28] qmp: add query-sev-launch-measure command Date: Thu, 8 Mar 2018 06:48:56 -0600 Message-Id: <20180308124901.83533-24-brijesh.singh@amd.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180308124901.83533-1-brijesh.singh@amd.com> References: <20180308124901.83533-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR14CA0031.namprd14.prod.outlook.com (2603:10b6:404:13f::17) To DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: f6939de4-daaa-4987-32a8-08d584f327c2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM2PR12MB0156; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 3:ObgucBGkPvDT56juNudUU4Rrza9uP1M+ZiUMkf+6LCPjVCMR35stIFWHlaExsp3HT90aWb33K7Sz4Sxs22EQyCvyszq7+EV7MIs/RU/zi/EdESnEr0khgBUiAbYHQ8M4kSQQ/5tt71EKi89TqMDzBClqFL8fVWtvbgrqEqmaDzovRMNO4NhqvWKgERRG8NdP7ZWVzaomlZuS0VO81F1cgANT/Yxt+XV+km7cjhz+yznLKLshokjLH4Zb2R2pCYMc; 25:QgO1fDOouIdnFI4m6iYvFVl8DIT2vPfgt4xuaxv2oWbeilaQKyqc4paI6eaI1FcJVMzbjFhKSSWFd5XfOwGJLuemNdjEU07gs3QOwKv8Wpc1yXCSE6TA+OrQxSctzkeeM8i6SoCQ2yVDWgF4L+aKZh2kjbzP+M3CzycO84kCqAheCOsBxewHyvlrwz/k2OYQDEQZycPfdGk/mSyYaz4qeQEASEk2nOgUETFYVAU1QLgtqJ8gXoDICzI7oIKpGU6R4hETTxdeHtemYHWifEZ314wkGCDL1iLmsj+HK1nhvnZQovryiWbKu80hejqj9tbbk0+B5tl/8kn/zzxm5dsY9Q==; 31:OzcDdOfeXk7g/izKmveu34+0EFh9dh9z/JQeg+CfqCkQq+bVvlAB5e+M4NqmuuoWd8jqtat/7DVPL47HJWHBknHPou1GXujH6Fc8RwBIlPxXYBuX6+jq5BGEY0D8WTNrCwgAm+KpwJzRKhX3EOS5iISLjcADzq1zczg6J5McnbCvTicHeQmHIKVkyqo1/+keCx9W9W49HIue5mH2mbaXskWTyef0vvmil60IPGIfbnQ= X-MS-TrafficTypeDiagnostic: DM2PR12MB0156: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:8mCH1pYbYTpW1I/+8Fqb4B8ZH6HzO/4gS9VhpbL/NtQWfPQ0xZf17ce6sfoTvfX250LutSq0tQ2WxkFffk9jQZgzkHw2xdyGKiRDoEAu4PqO197aDHhj03f52ZN6sjblL1hmosNEayN5cvPRQzEqSJt51QFjL3MBCdbcoxYWsQdzJupOHHMl5KDOSidd/c271rZRIyHYM7fQ65zUHFDNJqGY3clOoBi5Z1w4R0DBy4nmwBpkvph2xGs/Fsvid5UX0qjx63DGQzL3OwLRkYxtL0iqm7XtiqomOu69O2T55YA+jmkKIvCiNGYGchojFvRNTqIarB2dAO2eh6XTVL45vXcxUKCZxqf0x4XCq1Y5PtkyS+WWJ5VEkpZZKhnAmiKMC59XaPlfaFFsvjVmJ2ohSWR6HcjcBr9piSZwf+RRe9FFisGplLIUea+HptRhRVU7JJbfSBw5oA33hgttg4BTDdSBrMwCwwIo4LavTRcv8cVDSy5UHWcqG7WkrVgkV8Si; 4:4AOXnXuGjU2thOSyNs5tlPrEvDdtHl1D/14i+32NIPJXGdcgdJmeBkOTkx294awAnkPZHLlonrj4RurC/nOMMIUJp3EfGskQiH9b6c7KTzLiqk1cGpqFSaJoaDvyh4GRXnMjaDMMAduUIKpTX7EGaZc1vwy9NjUvpeTH5zQTnr3SKkDlx8L0nmll0ObqqmfIm1OOZzNQuoRS+CRihadFU00vj1D4h5i13VHVdGLXqGfFaUhExVIkG0n/BnDVXeE9ZKVBPcOc9DhoFHqFdte/zfkVRijSYANtm9Wtn5TwToHAK/nb+sBnfMoviZRWIFnx 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)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(3002001)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:DM2PR12MB0156; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0156; X-Forefront-PRVS: 060503E79B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39380400002)(39860400002)(376002)(396003)(346002)(366004)(199004)(189003)(50226002)(53936002)(2950100002)(6916009)(2906002)(2361001)(6666003)(2351001)(106356001)(81156014)(2870700001)(53416004)(8676002)(81166006)(7736002)(36756003)(305945005)(8936002)(105586002)(50466002)(68736007)(97736004)(47776003)(66066001)(25786009)(4326008)(39060400002)(6486002)(7416002)(5660300001)(3846002)(478600001)(76176011)(7696005)(52116002)(6116002)(16526019)(186003)(26005)(1076002)(8656006)(386003)(23676004)(54906003)(86362001)(575784001)(316002)(59450400001)(8666007); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0156; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU2OzIzOnlNTEZGU0ZVODJ3cHBHcjhRQzY5elpxaFRY?= =?utf-8?B?WUZ3d2NyK01ncVlubkhzTzkrOWNSY1NXMEl3MWNPdzFZRWlZL2lBc08xQUlY?= =?utf-8?B?Sm9DMGk2ajROSFZRQ1JHQkR1cUVsbWtubFovbExwNm9oUEEvUmZqeGl1S3lI?= =?utf-8?B?clVHMmJodWM1ZFRULzE4eHNiRmd5eTJzbUZoM0VacFh5ajkxdkxXOXY3THRj?= =?utf-8?B?TWZ0YlBLVVVnaHZ6TVlnRVpRSjVvaU1UV2lWWVhRRndPZ2xQNVVlTEZSWWlT?= =?utf-8?B?MWlsZHhNa2JQRlN1WTdKZy9QTXVKeVoxNDlOV0RRK0xTczd3YnFMeHFOc0Z0?= =?utf-8?B?dkpnZ2JSQWQzN3ZpUzJ4c3h2MXluUWtsMUhjQXpwRHdoYXgxbTZwd0M3azRS?= =?utf-8?B?Zi90VTZPRWpTdDdyamZST2d2Rk5zeEFwWnVRRHFKYmRWSXhtQ24rQWNMWGw0?= =?utf-8?B?TUpjYXRrTUhWKytpczRvNDdJNkRtNXdLWUtucjRVa215RTR4QVVtdmxYclY1?= =?utf-8?B?YzdWSWpMbGRrUG5INUNDSk5FNEpFcmxWMjZvVCtlNUNJWHhlRDJmdi9qNTlI?= =?utf-8?B?SGVsVmhXdlN2Rjd0Rmk2ZzhPSHZYMVQzaVd5UEhpWVVXcGlOM1BlZ2hMWENx?= =?utf-8?B?WFovdmhkbEc3TExRbjZVZWVkZkJ0VFNiNFlaNXpPMWROTUNhRk5yZTkzTlVv?= =?utf-8?B?UC9JT1JPZzhFZGlpcmFBOHFxNHNqUWxINHhMVnU1Q0tYYzlOTjZ2ck5qZnFm?= =?utf-8?B?c204d2d2Z05KRkx3VlBRWDlxbVVSNzVwQ3pYK0N6MVpoT1Q4ME5HcXNHdk9j?= =?utf-8?B?LzVnU281RnZpY29YNlZXSWN1cFgzZ0trNEYyd3lzUXVvNmJpUzVHVGNrZ1FG?= =?utf-8?B?V3d5MmZzSEZYSDk1L1QvVU83YlRWdVYvY2dEUjNzbENPMzlJQ1gvcm1mWC9T?= =?utf-8?B?T3hycFR6WVZ2ditBRkZ0QXVudnhEbUdWMmduVVhLeG5sQ21rYlUyTE9jYXZI?= =?utf-8?B?Zis2RFFGQWZxcjFlb2g2T0tDbTMvNFBIRWxqam1PQ21aNVNmU2Z6c3d2UXpV?= =?utf-8?B?U3RBT0xsWDRyWVp5dnRqSzJ4MlRIM1ZMRC9xSzZIb0h3QWJudTlvSmluZEN0?= =?utf-8?B?QXpjTHR6by9STFltSkhBQ1E5OHlReVdPNVBENGpyaTV2L0RWQmwwNTEwK1M5?= =?utf-8?B?THQzZU4xSjNoaWl5L0c5TDFVUm9TSm5LajhhaTZ0QnZvcWZ2MFFSZ2lneERK?= =?utf-8?B?aURHNHdIZno4azkweTJhYkZHNDhUQW1xUElMRXBCOGZKekp6Sjg1UUhrRGpy?= =?utf-8?B?QUJpbjNDMy80Sk14M0hVVWV6djh2Ri9ub2lWNU9mM3VMV1doUThtSE51UXY2?= =?utf-8?B?c08wNTJNMXV0WHFoazQvLzIwQUhXT0swbGt1b1V1ZGVnODVoa3Q4NFg3cW5u?= =?utf-8?B?SzhUMnIyNTJQU20vSUxWRFVodzVZcFY2emZqRnNwLzRiWjBBUS8vdlF0YVVO?= =?utf-8?B?eGt5a2ZKN0NhMVV5RHM2b2Q5K3VIOUVYVXlISDk4aEc1NjZBbFRVbmp0cWVV?= =?utf-8?B?b3U4ZVhKTkJSekluMjBVUmVlYlpIZUlNUzJaTVhFUW8wTFBtWVdLdlUwZ2J5?= =?utf-8?B?aWluK3hUSUVTK0NNKzZBS2Y3UVdLa1RXWTl6YTNnaVdUVUZVbjJrdG9aMnk1?= =?utf-8?B?WDFSeHNYeS9EaDFXMEtOYmZlWlZVN3hMa2RTdHkwUUhrOVVzcENWcHRmYWhG?= =?utf-8?Q?2iQiIGw3R4nW4CwMOI5gT7XwmcLuekWfqwSIg=3D?= X-Microsoft-Antispam-Message-Info: 5zsRft7UA+Ul8I3ToMVMISApNBDSxJlyd9BgW7aD8BOmivyicD1m2tgnG2kHRADgO8x/ziVVQozEeVeTHwltX30dkbxZbrdSqy1a+nCQFdaI5rDpqwEXUgxUZYuWtN5c51eYtSU0WExP04KPhExNCHTBybVwmVZwUwoJaOU7DCGMM8jy9LVzg2SqQ5ubmhX7 X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 6:OhP8VxOxoSgP11Jssi1lgDIdIeSX94xGIezMmHZwt1iHs/nKaBope7jvGZ6mwOLURn9fWYaazpF9t4CCPaUpiPczhe3FFibAgm+V3aqZl/WX7BUvoS1V57sWTm9IWjwD5V11yAB9bT0KcuV9JzvXLZBWxyFwBsFS1oaPCH63LfDBJilz3uEfiARhMuVpF9rr5jgkSXN/7COKjvQkWkZY5noB1qaKY1cI6FE4a/oCxfTcrEEgAuusoFwLL146l9e+mJE/BCBOl5vf8Vx6IynSbCzJ9W2P9IX63PI8kh/ov1jI7OmQcr25nndAWD6eaOoEZJ/LiUUYPnlelg5zR5uTFYqsHg6I+oKJn2DvMmxNMTg=; 5:pOalKCjJzO0QLRqyttno9ec+YlxH0e0LOqTARHLNhG81dNh9vJKGt5PJkEbPbtyzuIC/z8ktCIvSCOjBZ9+T7WBUL0s5s869+zhqubGX3mP2NvOxbDA/rZYKkwR8Vkw/LjDCZltzOmXylT38UuG4Q64l3DLxwOxXBkMSQfvvOlI=; 24:Caffl66MJAw6gDrvbQFFCQPiq04HvoDXDEyoMJMdyPmssKbjXR+6B62csHQ3rdMMX9cPljFUFrFrMiQ3TM3ZHQkGsJXJdZfUaIPCd9G4A8k=; 7:LSJBFAASMqjLAUjP1lpQjmmuT6REuHc4Fc/OZSbWNTOTywXuhqHAXuV4TmplyTD+3GdX5VRQ/JxGIZc9oRgVru/97IigbUO5cRlFt74vUWMggKYc/Evnm7nXxrqyZARTAoib4C26NNXWv/MpHUlq6zl8MgPwm0SK1kc/TTe4YmTsQtEQ9ZFyZ2aHcyjp3lwSy96MSf66vWZZBcLzpM75bLNPvU1u1Q4w/QqF+VVcjVw6XtaqLJd6jluQ6/1nwXT1 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:aHs3CWKxw1uGUG7VUygca+pAl8HNHCqJW7Kn7gYNuVyTAhP2IOIrA3UgZKqJnwTLY8I43kOY+LkDAjD7qTBYa3kc9QLpRJcfRMslVFQa2s0IUzU9zyvwHdNOk8RQ/7eElHQ/pXTVjSwH/uSHU6bwZke542z/mb/jbjMGVxSl+FdGGdyOTD2gwYUs13YAKkibmjJgslIE9pozV3YohDksJqmHAsklAbMiGBPaHsv4CImXa3eBZHu+my1T0ZHilxVZ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2018 12:50:20.0969 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f6939de4-daaa-4987-32a8-08d584f327c2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0156 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 Reviewed-by: Eric Blake Signed-off-by: Brijesh Singh Reviewed-by: Daniel P. Berrangé --- monitor.c | 7 +++++++ qapi/misc.json | 29 +++++++++++++++++++++++++++++ target/i386/monitor.c | 17 +++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/monitor.c b/monitor.c index 2225cf5030dc..d53ecc5ddab3 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"); @@ -4110,6 +4111,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/misc.json b/qapi/misc.json index 14681729f8fc..a39c43aa64b1 100644 --- a/qapi/misc.json +++ b/qapi/misc.json @@ -3277,3 +3277,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 7df31c3cdf1b..e5596bbc0fc2 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; +}