From patchwork Tue Jul 25 19:12:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gary R Hook X-Patchwork-Id: 9862729 X-Patchwork-Delegate: herbert@gondor.apana.org.au 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 2947D6038C for ; Tue, 25 Jul 2017 19:12:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1B4C428696 for ; Tue, 25 Jul 2017 19:12:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0FDFF28681; Tue, 25 Jul 2017 19:12:21 +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 1BC8128696 for ; Tue, 25 Jul 2017 19:12:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751441AbdGYTMS (ORCPT ); Tue, 25 Jul 2017 15:12:18 -0400 Received: from mail-sn1nam02on0088.outbound.protection.outlook.com ([104.47.36.88]:50176 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751423AbdGYTMR (ORCPT ); Tue, 25 Jul 2017 15:12:17 -0400 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=xOxKSxh3REOwqnqirdIPqNXX0r9FdEicvz5bLPuHtoo=; b=Zx0UVzDLEyWaUuFMba5zDiu/BiF2BvZR7eyX8ZZw4dCpCfamU+3S/9dzOc2/y75P0+CJp0m7owjZyrp4vENU9XmvP55Krsq+lbpu7B4sLSUNIi7l4s28mLqB0yrCxQOo/54SAy1FhIZ2YNXLLqU4Qmrbgl1H+hfrjRTQFhnuamA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Gary.Hook@amd.com; Received: from sosxen.amd.com (165.204.78.1) by MWHPR12MB1328.namprd12.prod.outlook.com (10.169.205.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Tue, 25 Jul 2017 19:12:14 +0000 Subject: [PATCH] crypto: ccp - Fix XTS-AES-128 support on v5 CCPs From: Gary R Hook To: linux-crypto@vger.kernel.org Cc: thomas.lendacky@amd.com, herbert@gondor.apana.org.au, davem@davemloft.net Date: Tue, 25 Jul 2017 14:12:11 -0500 Message-ID: <150100993132.39127.12837177440399767043.stgit@sosxen.amd.com> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: MWHPR1701CA0013.namprd17.prod.outlook.com (10.172.58.23) To MWHPR12MB1328.namprd12.prod.outlook.com (10.169.205.141) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bf591310-6351-4864-4ffb-08d4d3910fb4 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR12MB1328; X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1328; 3:86aMV7E+aHpd6kF0n1CzePQCud7CunLLDCBLU3eItB83PgfAiaQ672ZpNKTipC67KEYTnY8lsMUiFXbT1/tdRqD9+vBrWbq+YpUvSh4y5ASswFTIwAbl545BvC9rQb7geoakDG++QlN8ZUiKRvTJWmDcNaL1Sjkku15+NjqWtvdWe/ztNd3zIY/dhwYBw3YD9Vs1oYhg53P/SDBAVV+CXlGBuq5pAp2/jtm0j7NXU8OddSMPjngpYipWJHh5JMAjmVXNhcNnkgStpbWoxmetoHrTOjEtDVJjydTD3jyVZgGTjmEMkbAkI0MULqkprM4lQ/mFSZFsZQb8Y3Tx8qpH1jgQtDrfFqaTMXynnY2+10MCVdo3yQonxvkhHwlDQg//WjmJ8hBFa3hltCT6+ZniOTMbj+dBse0MuycI69h7NtLTP5AuUmM+GE5nNCvyhQi2HupiROg5iYsCixf4oOtRKKvb4clSYV1l6mwmXDAZoH4XQqT1hGYBFHc90oqFPdHJeBgCIf8hwbmwS9y4PaL0N40FUWhPXmEI/lBO1jyTVuKf8sbh5sovvtWotEPXwGPShLxGeohoBr86r509t70RW25BMUg9bWOeLhalba1jjd5oNc1lBu7c1PV0vaGCRVY0RS8VTKaxpvpyBM1/lcSL8LSkLXrFSccUPgrKApShBhrCKv7a3LAroE/c4Uwy+AX3Nvs8EMT8tZ2cEvEyRlahJl344v3VxSEShE6j0SpTdoE3Ta1wO0LxqPXPdYd8tacYDSeUyjuF7XONEGx3ofNOOQ== X-MS-TrafficTypeDiagnostic: MWHPR12MB1328: X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1328; 25:OrIoU2W04x2UTv/Ib7eVEpP1IkgrwVVyM8TnWwY2FvPN4mI64sKhBt3q8Z/R3tM+vZh5O/eR+npckjTHqyiZfSGSi46Riq9TMeL9/ibo6Ha0jQJwwD3ZqJDXjXBmFuZcBim6W2jpxljNDag2GsOmFQqw59HxVehV5HaxSrr+nI3A7Uj/ehXxKksOKDYReJQEo7EZ9Ok9iM6NS2RjCsb+EC3myIKwFjo4UFI1wCM2hYT+m/aS+A/FskJl9MWVmcdcCUuRrHSv3Qb6ZM+Wbq/db5vA4R6AeVXDU0npiexnhO2STSOXU5SUqVlAIlxi5sXQjCZAbAS4SaOBQ43PcWOEP1k16ytbpbs5u5QMkQLYX3XIcq8b1XwTt/4PAYhoelRlaPmFFH33aut5R8KY2V8wiK1RfHZAGjDEBFlVbVrpJFNC0QB45R9LDiYJg/7oyTJglVJpW/0sFBq78EBEe5EYylrXgjHaMluXbIVPpNGB3cx1uCwAwVkFepvoHlLiTivSP5DUNoA2ec/N5Ad1Ax6NHtTBVQNTxZezwHSmhvfmFIUDHo6i68NJSFWVoW8cfdSo3/SkHC+isUHwoymp/ua8cZ5dryEHwvf8XxUj3QJFK9G+WGrkRQ79fUW8YpGFMrzKF6nYfNXcDl0meDh4KmYq0wC72OqmtWRtBMefrmXlpd4UbrV9c+F2sKJmRG/mwr6bZc8p8ohJt5eK4OnXKBklKYDqRj1JXzOVrK0SyNW2tXVP6E8mLNFYkdh1OD6hKX7hHLh7yoYKZT3oJbce6gaKKPkIDzOMD/HCZJ5TGCIFzOcf0YUXKyqTr7K8UahdEAcrIuOTUYoQc7oneCHprrmv+0/xFVIxzcmmCCVKst3b3bdw++VnEQ7SejoZRw/blY8KV8hkczRPha+yLhbdmNnndw/5irUJkJfpsX5rKq0un fI= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1328; 31:HuaXeEdjiJkkj82kJt+BKeDt61RKA6W6CMfmz3KUZ7wHMC1qANIBdhh4lI82fHYsHgdcjsHcNjdWuqbC7Qw3j0sWXtcxe3bUUQc9oyY8Dolq2gAnxAlLeUL4E720KKMkkCgMizcnbNyS3O3uvmzKhVDGE1tRuFmyP9XuxzgFse7wToWtzFjGN5sdjm/nGip6O1MnSjeT2Z/NR1H0WYstVvJInf9RLbC/KBdGHljV1CA+eLefR/phHKzCcBiTbL/8F4jdAH1c29hUCzrsXuqEOcAwKrzqOC2zKkDNiwttgJi3/NcyoU8zpvMGOvB7hRnidnLh4HIHVdJJa29n9EIBt19IQB7xOLto6F31ING2J5a3xufVdu5Z1qPG6MzTCBKtsSIUpnMpjKkdaXMsfvVn1PIsU3GzPMZk6Yfe5hv/eIifCjxTGe8zek9Wy4VVRODQ9fqJvtKgYXPorkf0ZzxG1hsWwOkwSFVyqUc6RpAEnk6eDzLcPv9+Zo8FTpokDCF3NwBod6EmSdMenGmaJbs+h2rJdqKGpUTfzQ4MiyyrTP6xJQw/QCzGfgqDxekG1OCJDNmC0Vf8sDmI0Gmw46Bxhi9On0fmRP6c8d7Y8vdST8VPSqigpBgh9BkITLCDG2Ym5jzyv8EeW1Z1H1SEYCAyZF6knJ1IEYmPOgO4763WE28= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1328; 20:oMrMJrdGzdc3rPsk29FI7io73H0KZ5jmz0wd8eYRyjjY+SkkxMS0QxuVjzgjh1pHgf2aND/iJYGelr6jDiw3pS/YE//Eo1m432KONXG4KYWTipKMUbxQ3oJiQJAhJCyhV+o4lzJ8h6LgAUxCFRdrpt2kzpBjYIlDB1CoEcHEZnDKRt2B5e6anLsVfMtiVX+qbjYFkM+yrIDFdBIdXa72rKdSZncMW9rMog3xMl1vPbDICbLBiLepTegMHgsxrXJ+FMJLH5GZG+obc+ZrmL+mMjsBf3SQGasFNm9Zbdf4RM2W7kOZT6A1Ypzdi5HNapGKwEKDR9doRgOcr0QobTWyx8y9TeF9xJQa8T/aKV4eKEkEDCGLrrcuqEy6yZuTFc8EIHHxKwASCtzOZT6tSBOt+5IE/sj5YwhKGwhXzu3OTt16cwLAljf+k6Iq0fbzkciU/2zPPd9l/3G2X6ggE8CdI85ZPbxOvoWDf1KqOkSqs0O+naISzJbtu0J7o9ye/w+j 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)(601004)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123562025)(20161123560025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR12MB1328; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR12MB1328; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMzI4OzQ6TkxWNTUwWnRwTC9VOGNmdGxOL1Q5VkViM2VK?= =?utf-8?B?dnlwM0VPbVQ0Yk93RnJBclZtb0RFUzBscEFsYnJ2Nm1kRnNNZEVjTStkaHNk?= =?utf-8?B?VTRSL1ZmYThGaFlIa21JdkdQZjNoZGpqTWFOUjNIRUJZc0hoU2Q0MmsxbFpO?= =?utf-8?B?MGZPRzVBSDJ6Q2RnWWtnd013cldIOWZWMkFLZ1YrYVFEOTNmVWFXNlF2YkNG?= =?utf-8?B?UXhDRFNqMERjY1VlcTdTOEpkRUFsQlI2amg1U0NDL0hSdHdBdEtYblB0c3VV?= =?utf-8?B?WHAwTFVKUzV4ZlhHa2N4UEFrYVd3NW9hSkJNamE4MWoyZnlERDkwOVBEZmJT?= =?utf-8?B?emZPdnQ1dms0OEFlYzRscmdmK3RsWWhqY2J4NDFZZEcvZjdsTVZqSkdTaU5I?= =?utf-8?B?ZmlBTGtGSHBhQjQxK2Z4Sno4dTFRME5OY05wNlptb1M2UUN1RlVCMG45SE1H?= =?utf-8?B?RlFWbkQxNGVLTDY1ZlgxZisyeE5ocmYrNS9JbTNPSlJGelJ5aXQ1T0lhWjRQ?= =?utf-8?B?WGQvWW94OW45blJpTHdDS252bVZBWlBYMFRqaTIrRjRMcUJibkszRkVxQnBi?= =?utf-8?B?bnlkYXFEbEpmd0Z3bnRXT1pzMzBDT2ZVNXIvaHhiNlU0OENDUzk5UW5oK3pW?= =?utf-8?B?b2ZsVE9sMWFUY2kzc1J2TmFzOHNwclJ3Z3I3a3grdk84Mzg2WHA2SE00bTFp?= =?utf-8?B?VWNDSFh3c2E5NnRZaHlLTDBtdS9KcFVDN0w1L3kyaWFrMDliQzdmcmdBa0pr?= =?utf-8?B?QXhmZzZXQ05HYVpvZCtQa0ROakhOZ2Y3OVhPUi82SFI4S0Z3YlBpeWpFc0cr?= =?utf-8?B?YkQvSHVqQjliNEYwNU9uUGhwNE9WTkFRUkFnWURhQmpFN281L3JTaVJqb2I2?= =?utf-8?B?bFV0VnBhbUl6VVpWaHNFVnVGOGtOKzFVR3NJMG8yRmdQVENvUjRoa1lBRndP?= =?utf-8?B?dEFELzNlTEpUUWw2U090dzBEaVE1OGdyY1Q4eGNmdmlEaTVEajJWZWRoaFlk?= =?utf-8?B?SmdmMmc5bE9kTFMvQS94OUo2Tld6MUsxSlJtNG1uc1k5b3MzVEg4Qzdzc1Ay?= =?utf-8?B?Tk9CVlNRS2tIRWZkTlhQZVBoY01ZZ0hodVRWNXFZWjJjV0JodlJYL2EzZll2?= =?utf-8?B?RTYveWVRNS9JMU5iK1kwV0lqUnF0MEs5L3RDdjJ3dkNicVhrbTc5ZTVZV2Fv?= =?utf-8?B?MWZmcUNYNy9NWWJpek1Mc3hEajNza2VYMElBa3AzczFTVzFwQXJqTTcxVTJX?= =?utf-8?B?aVoybXVwZjVqM1pBbXFISHMzdGlmOW4wWUJLK1lBbVJ2N2RmOGVjcUthZGdS?= =?utf-8?B?dlFpSzRZTHh2MXFUN01jRWZ0RE1rM2xBbm1veUx3ZjVxN0NTZ0s4T1RWMmNJ?= =?utf-8?B?RGdmamNzQWljZFZIay84S3pnd2w0b0FXc0RudDVHS0svbU9VYWRzUXdDN3Vy?= =?utf-8?B?OGUzUmIvUkk3bFFuVk5xcU9TYmxiZzVxMFp3c3N2MUNHcXREVmhEZW5DUTNC?= =?utf-8?B?Zjk4bjJuYzJ4bzl2NmluLzcxWUh6Sk1HSEFpcEw5ZDRFOGpOeUpZR042MVNS?= =?utf-8?B?T3RUcHk5eGdXQ3MzMEt0by8zT0tZZUxjSlg3bkdSelEzOEZmRG01eCsxdGQy?= =?utf-8?B?NzZDOFZjdmQyckRXQ25UREY0WmVGVjQ4dnNuWG1xcjU4SG40dzFOa1E9PQ==?= X-Forefront-PRVS: 03793408BA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(39400400002)(39850400002)(39860400002)(39840400002)(39410400002)(39450400003)(189002)(199003)(2361001)(47776003)(6666003)(53936002)(106356001)(189998001)(38730400002)(3846002)(110136004)(105586002)(86362001)(6116002)(101416001)(50986999)(54356999)(230700001)(68736007)(42186005)(478600001)(72206003)(4001350100001)(50466002)(5660300001)(25786009)(4326008)(103116003)(66066001)(6916009)(7350300001)(97736004)(55016002)(33646002)(230783001)(7736002)(305945005)(81156014)(53416004)(2351001)(81166006)(2906002)(23676002)(83506001)(8676002)(2004002); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR12MB1328; H:sosxen.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?MTtNV0hQUjEyTUIxMzI4OzIzOkRFVlZHeldvKzZPVUJpWEVxNEdWWG1mYVYr?= =?utf-8?B?aEsrZ0R5RmRkMUt5M01tTzhMMHRHbU1sSC9hWTlpYUNwbDkvVW1HS1EySE1U?= =?utf-8?B?alBDVko2YUFpekZGbWZJelZUVm5kZXFxNGp5bllleVBERjR5VkdmdlpRTmJC?= =?utf-8?B?OEJhSUwxVzQybE1NMkQvQ2FKRUF6ZUkyYUFZbWE2QjgzNWwwaFA1NW12b25j?= =?utf-8?B?L3hiYTUyalZUNUJPUUJEN3Z4cTdNY0JHV1ZrRnFMeC9mUWR1MDlVazVtZm9Z?= =?utf-8?B?SXlvdHRHRDBmSkhUdE1vdUJwd1BnSkdmZW1BVjhYTGNaZmVUa0taVDQ2UUFX?= =?utf-8?B?cjRMSS95WWhrL3diTFl4YjZLN29SWWUyTm02cjhhQUVoMnVOR01lOUJhejNu?= =?utf-8?B?dGYxRUx4V1NqNXRKRU9oc3lGYkc2Y0VsVDBoRnNzWUZmZTVINnREOC9iVUJC?= =?utf-8?B?bDl6QUpEa2FTdlRkK2dFYXNRR21DNWVtQ3FSR1JnWXRlQ1pSR05kYVUyd1FJ?= =?utf-8?B?TlN1M0RXdDVJTkdVQmpKck9ZNTFwN3cxbGhOYXEzQXB4S0hFNks4NVBTd3lN?= =?utf-8?B?RENabzZqQnQxUGYxakQ2dFlGQm5GUnF5VWtVOXpNK1dKK05UV0g2UGpHV0I3?= =?utf-8?B?Y1dqMFFzOW9uUUo3a0tmdmlHdkt6NEpIbzlFV0toRytuSTBFVlhHVzVUejFn?= =?utf-8?B?UXVQb2Q2S1NEUlY5Y1hES0dXN2FRSmlLcllaYVlCcHdwMW9jVWRoNElpZzZ5?= =?utf-8?B?UzhKWG9PRnFpdWl3Sk9iRS80QU9GTGp2dW5tNWdZcHVzR3RFUkVncm9JVWJX?= =?utf-8?B?OHJNTDZvbDZvMUZGdEZFMTdaS2tQNE5lNVoySmlXRWJ5NURpbE5HdVVBT2tu?= =?utf-8?B?Uml1VFIzdmNUQ04vakw0TTdSa0wyazJzR0k5Vm1mR0VHdEtPb2pMc1hWUzBB?= =?utf-8?B?ZEEyZXl5N1dObTdMc0JRSlJEa25sWmVCQjRZblgwLzVSa1RRMFpWaWFwQ2d3?= =?utf-8?B?aHZUeU5XVVM1VHpQdytubkxERU44KzVrYjNiNTJlQ3k5bkM3cXA0WGlkSHBr?= =?utf-8?B?L3dUZHRQMlJmNGZGU3J6Zmdqd0RnSWxEQmNTTG1Xb05tVGQ4Q0trbUlnWWpH?= =?utf-8?B?ODdYZHRaOURnV1d0Njd6OFU0VWZtdURJZGNQZ2lXQXAzZG8vSDhoUjNGaG1i?= =?utf-8?B?UU1zRTNkdzJpZFFVMHYvRDlDR2dnZ0ZGTkh3MDFlaitxOWRudU1hQUxoQkZR?= =?utf-8?B?a2VBQlJlbk5EQXNHdVo0Z3V0OWI4V3A5dFdZazJ2ZlNNY0F4eUQ1SVNDT0Va?= =?utf-8?B?d0FmZjVDQTJVcFFhN25jejNjR0NVc1YrT2l3NjRQYmU4MVhiRndwYUc2QnFk?= =?utf-8?B?NGZ5MWVsN0RheHpTQkdXZjg1Y1FVaUVpbHJpazF6TWRtUW8zdmpPUG5CNnJO?= =?utf-8?B?a3dSc1p0dHI3bFd6THlBT2l0K2pvS01tb0Z1TW9DRVVsQlJRUll0OElhVEt0?= =?utf-8?B?N3RFVlpRRnVBMTlhM05JOElzNzR0YnBXRkdDT2hJcFJVQUVhQ0ptVE5MMEl1?= =?utf-8?B?aVdnV2pwUW9UWFRLOUo3a0dWWlg5ZEdFUCsxbXR4N1UyTmNkS2lmTXJDbVFu?= =?utf-8?B?YndQaE9MaGVhZUJJNEdEeWF2NGljOWUrWERiVHFZOGlWV3VBdU9Nc3hzSW55?= =?utf-8?B?TkZGNWxycXliLzlkejRkWklKdEUyUEhmWjNpMjhjazhXSVgyU2xlcW9RdU5F?= =?utf-8?B?WVdSQXBDT0pUOUpjdXMyTkltZnY3bG9kK0pjdk1rRm1yMERoRWpKd2NIWnlN?= =?utf-8?B?aGpWclNpYVF0SGdYVVpyQjdZVmIrZURQRXM2ellQNFNEMFE9PQ==?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMzI4OzY6R3NFSFNzQU5DTGV0YlBtak5mLzkydEFYWDhG?= =?utf-8?B?OXdmRHFQRlJsQkFMN1ZRVXJ6NVJmODNPZDREcXNFbnNuWUNJRWU2NC92VkRj?= =?utf-8?B?OUZlZWVIellLeFFOUGIwVUI3VHY4RnBtV3pzdGJQK1M1Y0RwUW1icTZhWnpQ?= =?utf-8?B?TEx0RVh1bCtVQkJscVdNcURUN0dkaVpaSGlrRmxKQVhGRzVRQnZOcFlOdjFC?= =?utf-8?B?YjNqOS9MM0hCSzVqMVVhSEZKTXNTdjl2MkFZV2VGQzc0VmNrMmhhWFRLbWtV?= =?utf-8?B?a0VYQTlUQldmSCtiT3RQVUFTQm9ScGtoQnh2ZTFTNlBCYisrbFFUMndZeWxC?= =?utf-8?B?MFhSajh3Mndjay9XT0krdE1YMm9sSUlWbDlZZ1o3dXhuV1VJZU5tS2QxZkRu?= =?utf-8?B?M3U4bGVaLzdvc0hhc0FPSU8xQVhiRW1GTmdJaktKbTVEY3Z0ZTlFbWhmUFVX?= =?utf-8?B?K3VHendiUGdCSHozVlo3SGU3M0NnSDVycnBmZDA4L3BGVEMxYytaYkNTVSsw?= =?utf-8?B?OHlNaWg3V0xuTEpBaVkxbjhRQXQvQTYxb2VrNWdMNXVHZmZ1SysweUpoS2lQ?= =?utf-8?B?L05jelU3Z0RteTB3ZkFDc2ZIN3E3OSttaVFXQjZLK1hjYTJGKzlOL2FieDRM?= =?utf-8?B?QkN4aXhmWUVzRkhNVGtQejdMTXhWQ1RPdHNiVXVwVlFKMFlVbVdXNHl6ejRh?= =?utf-8?B?SG1PaG52bysvUWo5VGNWYUdiSTZDQ2NJNzVHYXl6bWhDcytDSE5reGQxL0VI?= =?utf-8?B?enAzSW1QYmhhRDVSZVlsNG9wUHVhWmVjbzFxRzZJMm9XdlIzN29kRWFENmh1?= =?utf-8?B?Y1NDM3hmU3g5MmtjanRVZ1cxMktDbjN5RlpDYW1vU3VOc2FlVnZURWpGclhV?= =?utf-8?B?OEtwMDNUbGE3Qnc4ZWZUVFBtRlhOY2UrendSVnJpT2kvY2dHREw3UXRmUzNT?= =?utf-8?B?WmRoVkV2M05LYlQ0MHhodkxlVHhrQmg0L1loL2x3WVRlRVdHWGh1VTFReVlT?= =?utf-8?B?elI2aTB0MkpuQ1dPcmxUQnpVNkpUaUp0THptdm53M25LWFFEMXRMT0ptaFZZ?= =?utf-8?B?RUhnSVcxdzNPSEVXTzY3SGhJNFJSS3VQMG8xV0ZNdC9JQWpmQTNwUTB6NkJP?= =?utf-8?B?N29kbnREelhzSFBxdyttR0RVWmcrZjBNbXJNU09IdTN5SmdWai9xM1pYRjFT?= =?utf-8?B?Z2VOblFmRDI2VDBza05Kbkp6VEMybVhQK0RoM281clVYTlk0QSt0UHB1b0VB?= =?utf-8?B?SzRBMUU1Y0x0eExxcm8xbXhsNVRMWG9xN21FTkQ2SUNoWVNweHNXUC9XWkxk?= =?utf-8?B?aUhHdlpDYVg3cGw3NWpESU1aZUR5NUtRbXRxQzdmeTZTelpOOE5ydjdMZm81?= =?utf-8?Q?bkHoJJ5?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1328; 5:LLXX3WU+1GV5Wke1LVIg1wDxN/Iv3HvC5c13HFQ+m8fG+jkDb8coQxwV8DC9x1LaepZdHxdi14/nn6vfTJo8Zo/a5lelwOFFxEBiVwc6wxfNlPbe5YIi9tsS87X4yTo+Y7vxVifraPkqQ9krG3axd8iPHKhWrOkygC952jEa+8r1Adbuunk1A29TF3w8CpppBIcHOkSWYU+dVNZxFGRmD12ooS+6SA10HJVqSooekI0OvL1CpCdue3rpzl8tgWTKcK5VboYnjNK3rcAWqrbdZHb6wiFUU0Fc4WkRCMqNdJ4HldrtsuC8JneW/8PO0ME07wStjsw51S26ZbgGGZfvLGZbg6fO9LhKDiaOiWZ25tEVcwZUQlcWsXQJzryktQkaT9dEBQoeK4+lj5/w2giSIm3atj5HMlsV08BU0bpKW0wZxl2hJOmSkrjqNRMDBTVp9GN1IXEeZT5W7+nlzIomXIt24+YvSB1k2tIrV4gcHDhyM7m9WPqe6S4oVaOWnRnr; 24:gcbzxNYCf78RFwbo1mBl6EFHLcMp+ig/BM+VDCmuH7dOww2n8TQVHhsYVKbYbJ0gmyzcV4FL6u720t8vwUPKm79r0FInzb6imxi1v42ezLc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1328; 7:NYFlGO8wNKnuArXNkLbuq3MdoNIqWyrAObzhxdaO2QB3L4aq9HJQmkfPkSdWmCu6lVOKMT6l4DOvk761dcqX+fQ7PaSlaH3S8whTIXonGgRCfTSIcF/7ajB1WEJZ+tyiFKeA8EAQ2KMaia0d1oxwrpZ9yWKfszIDVq5WkNJoLsb6RKTSCchL+J3iV72txoqiPSkmGwySW/N9X8y8btPJp98oIZzbUrTULqjKev1e7z8FzFWWclbkW5evVqd14riUlAeV72hcdkdTrgpSgmk3MJ8ecbOIl/07Reaih8NqIKzG5dmmR6Ea1FYZYiw0+cQLH4+TfVbK25QGKPyNKYwBf8wws6z/gI+3T9K3JwdL9V7jNS4J8Y9RxYPc0S0NqtpTZ/UXJtww2sS3U3oRtPMDzcGoqzI1bQvnTCmOWJU0ng5QDKMnKE7ewyniTM0TuWRCv2TOBUvrlyWj6H0avke/kuTXt6ZdaN439zBD10F0mgTvBkMSxieGr9i96ZwJds/3cLs2zZncWl2aq2gMjJykk/X5qUocKZupXz0SWfLLOT8wNQdWNciCF66kfx9yX/pE0pnYaYUcoiLC399ZfNYAd+o4G8iR5bTQfSCdbSRJNWPxoQ9vl20nc62wncik9MTQUTo6b+b4XIyZsLHOyroUZbAG+6fKsMMUXSl4qD2vh8giH7T2gK5nNR3BblZQdbRz5iMRSW9H8RkhBzefTThl2cISC/04FUJJWnnJvHo94EyK5tqzzpX6Rl0/2uaRoMRNrufLvj1SwiBLKiNv4VOAFsw6Iuxsq/p4QvdFLkbC1js= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1328; 20:CclBBEn+TB6M4w0p4G4tj9glvigSsF0vB8JBuB2G4GOoNxdI2grZPc2t22Nyv0HuHWAjrYVVIJmQt4RFhFVasoewkfgpLGBd5u+IwPMTW4zcbQ4YRspJ9hAdOmxKlMwji5IKKNtt5VXRfTsBoswMRNp7K1371QVe2JBnpUBfW3FQPzoGAQsYX2Da5FbCAh8GjrTs+hqRMV9FEYdnkeSBf3NbLAU+ezWKhBGxdnCZ2TCFtp9Y9MWCm7Gcjz5D6FDw X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2017 19:12:14.7741 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1328 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Version 5 CCPs have some new requirements for XTS-AES: the type field must be specified, and the key requires 512 bits, with each part occupying 256 bits and padded with zeroes. cc: # 4.9.x+ Signed-off-by: Gary R Hook --- drivers/crypto/ccp/ccp-crypto-aes-xts.c | 4 ++- drivers/crypto/ccp/ccp-dev-v5.c | 2 + drivers/crypto/ccp/ccp-dev.h | 2 + drivers/crypto/ccp/ccp-ops.c | 43 +++++++++++++++++++++++++------ include/linux/ccp.h | 3 +- 5 files changed, 43 insertions(+), 11 deletions(-) diff --git a/drivers/crypto/ccp/ccp-crypto-aes-xts.c b/drivers/crypto/ccp/ccp-crypto-aes-xts.c index 58a4244b4752..3f26a415ef44 100644 --- a/drivers/crypto/ccp/ccp-crypto-aes-xts.c +++ b/drivers/crypto/ccp/ccp-crypto-aes-xts.c @@ -1,8 +1,9 @@ /* * AMD Cryptographic Coprocessor (CCP) AES XTS crypto API support * - * Copyright (C) 2013 Advanced Micro Devices, Inc. + * Copyright (C) 2013,2017 Advanced Micro Devices, Inc. * + * Author: Gary R Hook * Author: Tom Lendacky * * This program is free software; you can redistribute it and/or modify @@ -164,6 +165,7 @@ static int ccp_aes_xts_crypt(struct ablkcipher_request *req, memset(&rctx->cmd, 0, sizeof(rctx->cmd)); INIT_LIST_HEAD(&rctx->cmd.entry); rctx->cmd.engine = CCP_ENGINE_XTS_AES_128; + rctx->cmd.u.xts.type = CCP_AES_TYPE_128; rctx->cmd.u.xts.action = (encrypt) ? CCP_AES_ACTION_ENCRYPT : CCP_AES_ACTION_DECRYPT; rctx->cmd.u.xts.unit_size = unit_size; diff --git a/drivers/crypto/ccp/ccp-dev-v5.c b/drivers/crypto/ccp/ccp-dev-v5.c index b3526336d608..9221db10d5ed 100644 --- a/drivers/crypto/ccp/ccp-dev-v5.c +++ b/drivers/crypto/ccp/ccp-dev-v5.c @@ -145,6 +145,7 @@ union ccp_function { #define CCP_AES_MODE(p) ((p)->aes.mode) #define CCP_AES_TYPE(p) ((p)->aes.type) #define CCP_XTS_SIZE(p) ((p)->aes_xts.size) +#define CCP_XTS_TYPE(p) ((p)->aes_xts.type) #define CCP_XTS_ENCRYPT(p) ((p)->aes_xts.encrypt) #define CCP_DES3_SIZE(p) ((p)->des3.size) #define CCP_DES3_ENCRYPT(p) ((p)->des3.encrypt) @@ -344,6 +345,7 @@ static int ccp5_perform_xts_aes(struct ccp_op *op) CCP5_CMD_PROT(&desc) = 0; function.raw = 0; + CCP_XTS_TYPE(&function) = op->u.xts.type; CCP_XTS_ENCRYPT(&function) = op->u.xts.action; CCP_XTS_SIZE(&function) = op->u.xts.unit_size; CCP5_CMD_FUNCTION(&desc) = function.raw; diff --git a/drivers/crypto/ccp/ccp-dev.h b/drivers/crypto/ccp/ccp-dev.h index 9320931d89da..3d51180199ac 100644 --- a/drivers/crypto/ccp/ccp-dev.h +++ b/drivers/crypto/ccp/ccp-dev.h @@ -194,6 +194,7 @@ #define CCP_AES_CTX_SB_COUNT 1 #define CCP_XTS_AES_KEY_SB_COUNT 1 +#define CCP5_XTS_AES_KEY_SB_COUNT 2 #define CCP_XTS_AES_CTX_SB_COUNT 1 #define CCP_DES3_KEY_SB_COUNT 1 @@ -497,6 +498,7 @@ struct ccp_aes_op { }; struct ccp_xts_aes_op { + enum ccp_aes_type type; enum ccp_aes_action action; enum ccp_xts_aes_unit_size unit_size; }; diff --git a/drivers/crypto/ccp/ccp-ops.c b/drivers/crypto/ccp/ccp-ops.c index e23d138fc1ce..6a2857274f61 100644 --- a/drivers/crypto/ccp/ccp-ops.c +++ b/drivers/crypto/ccp/ccp-ops.c @@ -1038,6 +1038,8 @@ static int ccp_run_xts_aes_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_op op; unsigned int unit_size, dm_offset; bool in_place = false; + unsigned int sb_count; + enum ccp_aes_type aestype; int ret; switch (xts->unit_size) { @@ -1061,7 +1063,9 @@ static int ccp_run_xts_aes_cmd(struct ccp_cmd_queue *cmd_q, return -EINVAL; } - if (xts->key_len != AES_KEYSIZE_128) + if (xts->key_len == AES_KEYSIZE_128) + aestype = CCP_AES_TYPE_128; + else return -EINVAL; if (!xts->final && (xts->src_len & (AES_BLOCK_SIZE - 1))) @@ -1083,23 +1087,44 @@ static int ccp_run_xts_aes_cmd(struct ccp_cmd_queue *cmd_q, op.sb_key = cmd_q->sb_key; op.sb_ctx = cmd_q->sb_ctx; op.init = 1; + op.u.xts.type = aestype; op.u.xts.action = xts->action; op.u.xts.unit_size = xts->unit_size; - /* All supported key sizes fit in a single (32-byte) SB entry - * and must be in little endian format. Use the 256-bit byte - * swap passthru option to convert from big endian to little - * endian. + /* A version 3 device only supports 128-bit keys, which fits into a + * single SB entry. A version 5 device uses a 512-bit vector, so two + * SB entries. */ + if (cmd_q->ccp->vdata->version == CCP_VERSION(3, 0)) + sb_count = CCP_XTS_AES_KEY_SB_COUNT; + else + sb_count = CCP5_XTS_AES_KEY_SB_COUNT; ret = ccp_init_dm_workarea(&key, cmd_q, - CCP_XTS_AES_KEY_SB_COUNT * CCP_SB_BYTES, + sb_count * CCP_SB_BYTES, DMA_TO_DEVICE); if (ret) return ret; - dm_offset = CCP_SB_BYTES - AES_KEYSIZE_128; - ccp_set_dm_area(&key, dm_offset, xts->key, 0, xts->key_len); - ccp_set_dm_area(&key, 0, xts->key, dm_offset, xts->key_len); + if (cmd_q->ccp->vdata->version == CCP_VERSION(3, 0)) { + /* All supported key sizes must be in little endian format. + * Use the 256-bit byte swap passthru option to convert from + * big endian to little endian. + */ + dm_offset = CCP_SB_BYTES - AES_KEYSIZE_128; + ccp_set_dm_area(&key, dm_offset, xts->key, 0, xts->key_len); + ccp_set_dm_area(&key, 0, xts->key, xts->key_len, xts->key_len); + } else { + /* Version 5 CCPs use a 512-bit space for the key: each portion + * occupies 256 bits, or one entire slot, and is zero-padded. + */ + unsigned int pad; + + dm_offset = CCP_SB_BYTES; + pad = dm_offset - xts->key_len; + ccp_set_dm_area(&key, pad, xts->key, 0, xts->key_len); + ccp_set_dm_area(&key, dm_offset + pad, xts->key, xts->key_len, + xts->key_len); + } ret = ccp_copy_to_sb(cmd_q, &key, op.jobid, op.sb_key, CCP_PASSTHRU_BYTESWAP_256BIT); if (ret) { diff --git a/include/linux/ccp.h b/include/linux/ccp.h index 3fd9a6dac344..7e9c991c95e0 100644 --- a/include/linux/ccp.h +++ b/include/linux/ccp.h @@ -1,7 +1,7 @@ /* * AMD Cryptographic Coprocessor (CCP) driver * - * Copyright (C) 2013,2016 Advanced Micro Devices, Inc. + * Copyright (C) 2013,2017 Advanced Micro Devices, Inc. * * Author: Tom Lendacky * Author: Gary R Hook @@ -229,6 +229,7 @@ enum ccp_xts_aes_unit_size { * AES operation the new IV overwrites the old IV. */ struct ccp_xts_aes_engine { + enum ccp_aes_type type; enum ccp_aes_action action; enum ccp_xts_aes_unit_size unit_size;