From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933546AbdKAVRN (ORCPT ); Wed, 1 Nov 2017 17:17:13 -0400 Received: from mail-bn3nam01on0059.outbound.protection.outlook.com ([104.47.33.59]:44352 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933524AbdKAVRE (ORCPT ); Wed, 1 Nov 2017 17:17:04 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: bp@alien8.de, Brijesh Singh , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Borislav Petkov , Herbert Xu , Gary Hook , Tom Lendacky , linux-crypto@vger.kernel.org Subject: [Part2 PATCH v7 16/38] crypto: ccp: Implement SEV_PEK_GEN ioctl command Date: Wed, 1 Nov 2017 16:16:01 -0500 Message-Id: <20171101211623.71496-17-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171101211623.71496-1-brijesh.singh@amd.com> References: <20171101211623.71496-1-brijesh.singh@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM5PR06CA0064.namprd06.prod.outlook.com (2603:10b6:3:37::26) To DM2PR12MB0155.namprd12.prod.outlook.com (2a01:111:e400:50ce::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2cde6174-c54f-44e9-7f3c-08d5216ddc17 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(2017052603199);SRVR:DM2PR12MB0155; X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;3:Rn5OQ4KY43ObvvIf4PuukZiHxJXfMwwE0wK4EhCeSVLwFKMULDsSVS1TDIeY6BjkUv2Y/P+e42g52ITeR6OKX8Ca9VgrvHII/A8830+D403tINBgvu1Zbdq5IngTBPcXFlaytDmKIz7GEPT/zUWkWRGwuCcUd6p4PrT7Z41khEfnqasby9KMMwqhbTjvYAPOcMVwBMWQJHm2eAgGc7lvXE41MBzYXyD36TZZWNPUX663nyJeN7W4pMBQcumLgTJv;25:JjVhmDuXPUnvpsNkPOiXq6QN1U2HqIES2ozwOPRs/tx0VQ7+vBweUxe50J5YMH63w+S5j3ur0cM0Rj8k62yj0LwWyZrTQa8K2Iyw+WgwFMoHRNm0mgVrKqwjOvxgpMtHLRqBL61azY+ycV4khwAVE6URwcMIZg+mnB8Ikx167SaItkYGpg36oy7+Fgze+Tyno8zupbVM47kJV/Tdo2q0footlfUae9nKuNPmlz1HD8stDVYk4CqpEukDSExSUN8cRB0fqmGgpLnDPkbcqAYxzmaaHC8lhD2dCqBEvI5dPHHoxHHREBff0yX4AJ3ksn4uFBYQ3k4bfVgFGV2CqEQVuQ==;31:69IokuOu/YLYSXDoVEFXs2cK3lHc2OL+WARF5r6gm3XxeI46ngEoEqW1GHcQVlb4rj97TSJVNyM5TBBjLOPQ1+LYWqYMi+L/fKTRkabUL8minXRXjvOKjO7b19CmbraAEZ9RhHxIZGdZTJLWIWyClFM3syrV3cXKK13hPdPdTYH4q4Meix9Ogy8IeZvw/ZpF55Eifm0JXRlCje+iUJiYjg1hRfvdSgH9Ei6FOoVhLGE= X-MS-TrafficTypeDiagnostic: DM2PR12MB0155: X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;20:qpXKLh5w+b1AURVjH5Ol1cKaOwUT6KAgKsIVb5mUqXzwr+a2RIBiy3EkDKnfIA4cbFD5erNHo7n2Kh3XERocuHjni0dMV6J7E0KUzXP6pbnZQP8OKTw2Q9l1UOzYM3WDKUUSzwvIuM/5J38uu/exfsyfQHJ/jc8GR/VyORnBkg6bpUZC5g5qUgNkSY3t5NdMz+7GZKi/+NKmjVXDB81HgEMyuxicPmVNEbngEywgckZr9ibtqSuvCAcNh4QfW+x6J2EAVoam0CYpcrfZvTkCiXIpQ1ByZMWgl9Ir/R3ucBM2nYSizB8KtB1uuxoyvOpoy4wJ0dD25belJTbO4U7hWTOFLP4rAHBR1qjhVOmWP9PRSAY+PHBWt6FP8H8VUYzTNELaJJvqXSwXWOXmY+FQq/DkqLFoqclFbxZ5dDXZuLG5LgoktUfB4p1HKMmmNNJZG7JnEZqg4Nn4WWf/88qlm6gwiTLReE7vscicEU2YgOYnZjiJ2RTGd3Bmbu1Kk6P5;4:Z6cUpoYAz5G43Qpy2psKTceVXa4SQL0zHdmRRCDlg5hP8wxK+IAkqDy/F7GaH+yE66Cngmx8Qb0LQKo+M59zAMUi2yScMqJ8s0MvEIqCQmOxsk3sLSVmipeBR2H/I4jZLxTqQHDAqTjYIj+sjPM4CWVYLDYs+GUf8h7jfTNsAZ/28Qut49Zyl2MfE+sW5rAJeMXDmxAzOjjVFeo7O8yuzttNzpwbzUpd8O34XFoX5YztOBbeukXRizADHAr4VcVT0cWAMtTfEEuutLOf4cWuxyUTshJMbWF1dgN9mDHI79MFtVVKmvM4PbAUjiHMvgxljngHu7HKImN+D3xoWABZWw== X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3231020)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123560025)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM2PR12MB0155;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM2PR12MB0155; X-Forefront-PRVS: 0478C23FE0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(979002)(6009001)(39860400002)(376002)(346002)(189002)(199003)(1076002)(6116002)(97736004)(66066001)(50466002)(3846002)(25786009)(4326008)(54906003)(316002)(8676002)(47776003)(36756003)(23676003)(50986999)(478600001)(81156014)(81166006)(105586002)(53416004)(53936002)(189998001)(106356001)(2906002)(16526018)(2870700001)(76176999)(33646002)(305945005)(7736002)(86362001)(5660300001)(6486002)(101416001)(50226002)(68736007)(8936002)(2950100002)(6666003)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR12MB0155;H:wsp141597wss.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU1OzIzOnpvbzZKT0pkVUgwa1B0Y2VhU2RySTE0WEl0?= =?utf-8?B?ODJYazNObVdpUDVMbmF2MmRVcTdUL1pic1REeTc2RUdIemtYUUZtNURpM1JC?= =?utf-8?B?S3BhTzFleHRZNzhrdWlWeHUxR0hXbWhqL0RodGp0MytUWk8vT1E2N01ZazBu?= =?utf-8?B?RFVjVXYyamZNK0JQeUxKVHdxMHVCZVBScmJYeVcvR20xUjBCdUwxaisrTUZH?= =?utf-8?B?VEpLT0Vud1hzNHBQRDhnMHlKUko5Ky9qQXdNRmlmMUx5bmJrR0E5OXQxdGVB?= =?utf-8?B?MzFJeWt5bUxlTW9YeFJnUVV3VG5qaUR3ZlY5V2Z5SnM2MWNZWGlJYS8vdVQz?= =?utf-8?B?TnQ0RFJWR3BGQzBtUXZNSDIyTi8zNmRSQmVvcFhndDVoQWRZV0czbGxUdkZl?= =?utf-8?B?WFdSVWpCUG1SL1NZQ0dmRUxJV0dNZ0pzWFk2dEYzVDUzNTJIZTZRT1kvNDJT?= =?utf-8?B?WmViTlh1TEZiWmxrUkZianZRSFRBMHJLamFpbTFqdlFDbHZERzZSQm1ka0ho?= =?utf-8?B?UWpVTkwyM0dhb1I3TTJZUHRwWC9KdmtIU3JQTW9TeUN1cFo3ZFdSMDJrYVN5?= =?utf-8?B?ek8zNjVnancyWG5GaXU4OGVheDRFQkQ0bVdndWRxR0lvWEorY3ZUdS9Mc1NC?= =?utf-8?B?aHhlWDg2NGNOcWNwQmpKemQzQTJpU1JXS2M1SWlPWk42dWgrekxkak1qNUxj?= =?utf-8?B?NEhUQ2dmcjNsWFByNC9XV3N5T2VheURPMHZZMHpiTWdtNzc0MEdPS3pDQ3pF?= =?utf-8?B?aHJ1K0NSZDdqWGtzWnNqRmQ5Y1lVdkRPb2hMWlYyeHNtVUhtYXcxNXRCNU9W?= =?utf-8?B?L3ZOZ0lNVFkrQWhqQmVyckZ1cFg3cCtsR0IrYkUxR3FrQUxVOXJmRFdzMDQ4?= =?utf-8?B?Y1VSR01mWGRSSFA5L1NBQmdoQTF5Rld6WHlpWUhCclcyWVVCQlBnN0xMS1Zu?= =?utf-8?B?WVdOeEFYUUxmWXNraDIxY0czRlVqeTZGNjg2dFRkdlNabnlWMkVHV3VWNyt1?= =?utf-8?B?S3ZXMGExOCtxY3FKWGFETDRrRkhBaG9WNEFUcDEwVDlEZ3dSeTc1a1VCK2V1?= =?utf-8?B?S2JOcDVBellVL0Vyb09LenA0eHAxaW5uM201ZEFVdTN2WjY0cVNSTEVsQlNp?= =?utf-8?B?T3pGNlVIemJpd1BMMVQ4dVE2SnFsd2EvMEJGWGdXYzZXM01mSmRNcW1wd3B0?= =?utf-8?B?MFNYd3hDRVVsWmE0WW5rcDIremgrU09raW5PZENDKzNSUUtQNFhKcUhYajZB?= =?utf-8?B?S3RBN0RmWThxQTZFMEE2TFlkSGFFQ09OM1FXMDRSVkN1NlhKS2dwTXJZVnEz?= =?utf-8?B?VTM1U2xPNDNLZU91V3htUzVZMTFkRkpZUEQ3ZUozL0FXeHIrSE1DUHg3Tnp2?= =?utf-8?B?UTl3SnlqOGZZSEhId3ViMjFzb3JJTm1pRlJ0TjNXRFZKWWZxb3JDMyswUERP?= =?utf-8?B?SkVrdndLY3kxbnpHazQ3djdkRmVVR3VYeVhDanNiczhFenNNTzloZGNEUTF1?= =?utf-8?B?VUZtck0xLy9kWVordi9SdStOTjF3Z0Rvd2hCMzN4OG1LL0VCdlVQcm4yeDJq?= =?utf-8?B?UmwyNkRRbWo5YUkzRVM2QTJsRHhoWkE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;6:KruR0H6Up1NDNL12p7CdWIPn29vrwdE0F1UTDCN5Lf/VtiNfSeQUFSTAgXU9AGwiTwZ0Sy+U/WCP2DEq28G2zr1Kfei36vFmMMtHUnGI44avT6foaUYlPkMcpBdNssr6IuqqQy16GtAwXVriBC42S2qbjkcZcCOUCi2AXBnp85SIektHDJvRvC0APt9xYgE7JH3FKCjb/8X2f7W/URqkNNKei7k00V0plhoY0iczzYH6lmux2cp9U1/dgkabpGL+Zl/Vr2o181xYQeFMgiVMt8Y8eiOOirfU2+9ZJvkpS7q46wa0XP6SWhPbK//Lnm8jbOxNO9PUbuVHrc5vN3vLxpguU3u2Hy1DXLpUykMFckY=;5:j9Jo+MPCiwgR7AnSlUAhKb3EqXEqnT0ttP6SSeIYVAUVycE318Z8SFlO4w0R5QR59aDTE8Gvu6XmGKXyaYm6KNNd6DZ4FtFehQ5tyLDD8bp6cUVT0zdwDHXAD8pWqp1Rwoy49StT0cjFp00kKzyqf/jPmZ8S9IergqI8/BMl1t8=;24:QP0pQO+6qr8dEVpd9yb/+leqsV651Kw3Tt08mOa8NwmfFR6a5zL552KjB1sFZrNt+sEjyF1gJhA4zFPiPjaY9U/jbLciSB0PuIBFCimu4Is=;7:twpuk3oxExJw0ow1mRC1TK34kcF6PIujqei3lLdHKseFMdUcUBwonvQu1nndNkL1a/HpVfCsSDO6kLWiavgZRfm4bi43cB0umJyAwzftHZ5tgdtmsboLxSWlwEfpXZJZcSXxvsUVxJPQiC00NylM/AJdjxM15Tlq2stQELch5PLM+kM5ZQ45FiYJuS8s+CSZXnfI4K/G2oOMDsygDG8jE20hfS5r1iwb/fYCC++b27UTnqbCGW8/1hGmKZShCbny SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;20:8fm3UT1CJQoVI0kio2G20Y2fIp70so/QUvO/gX07O/RK+pD/1kF/oP39FSUMcIkPRUaYLnj4jxmjMpfJWskclM6OywV1sBJI/pDJCpCcHN2vxlYbh+V9GoBMwiF32YK9etuvsYqb8noOW2hsNA34SdXkipfXZ3Xo5goQ36ZM1Js8QN76lTh3JeRGmdwsAslo5M8kgu42g3ulAuvinZyIpBBP+4/d0GoHgJY/4FIOxfzZHYwNswPxc1sPQLAFzgPC X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2017 21:16:46.7035 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2cde6174-c54f-44e9-7f3c-08d5216ddc17 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0155 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The SEV_PEK_GEN command is used to generate a new Platform Endorsement Key (PEK). The command is defined in SEV spec section 5.6. Cc: Paolo Bonzini Cc: "Radim Krčmář" Cc: Borislav Petkov Cc: Herbert Xu Cc: Gary Hook Cc: Tom Lendacky Cc: linux-crypto@vger.kernel.org Cc: kvm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Borislav Petkov Improvements-by: Borislav Petkov Signed-off-by: Brijesh Singh Acked-by: Gary R Hook --- drivers/crypto/ccp/psp-dev.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/crypto/ccp/psp-dev.c b/drivers/crypto/ccp/psp-dev.c index ef473ec4a413..2c28c36d7ae8 100644 --- a/drivers/crypto/ccp/psp-dev.c +++ b/drivers/crypto/ccp/psp-dev.c @@ -285,6 +285,19 @@ static int sev_ioctl_do_platform_status(struct sev_issue_cmd *argp) return ret; } +static int sev_ioctl_do_pek_pdh_gen(int cmd, struct sev_issue_cmd *argp) +{ + int rc; + + if (psp_master->sev_state == SEV_STATE_UNINIT) { + rc = __sev_platform_init_locked(psp_master->sev_init, &argp->error); + if (rc) + return rc; + } + + return __sev_do_cmd_locked(cmd, 0, &argp->error); +} + static long sev_ioctl(struct file *file, unsigned int ioctl, unsigned long arg) { void __user *argp = (void __user *)arg; @@ -313,6 +326,9 @@ static long sev_ioctl(struct file *file, unsigned int ioctl, unsigned long arg) case SEV_PLATFORM_STATUS: ret = sev_ioctl_do_platform_status(&input); break; + case SEV_PEK_GEN: + ret = sev_ioctl_do_pek_pdh_gen(SEV_CMD_PEK_GEN, &input); + break; default: ret = -EINVAL; goto out; -- 2.9.5