From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?SG9yaWEgR2VhbnTEgw==?= Subject: Re: [PATCH 2/2] crypto: talitos: Add AES-XTS Support Date: Fri, 27 Feb 2015 17:46:43 +0200 Message-ID: <54F09163.5080007@freescale.com> References: <1424451610-5786-1-git-send-email-mort@bork.org> <1424451610-5786-3-git-send-email-mort@bork.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linuxppc-dev@lists.ozlabs.org, linux-crypto@vger.kernel.org To: Martin Hicks , Kim Phillips , Scott Wood , Kumar Gala Return-path: In-Reply-To: <1424451610-5786-3-git-send-email-mort@bork.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" List-Id: linux-crypto.vger.kernel.org T24gMi8yMC8yMDE1IDc6MDAgUE0sIE1hcnRpbiBIaWNrcyB3cm90ZToKPiBUaGUgbmV3ZXIgdGFs aXRvcyBoYXJkd2FyZSBoYXMgc3VwcG9ydCBmb3IgQUVTIGluIFhUUyBtb2RlLgo+IAo+IFNpZ25l ZC1vZmYtYnk6IE1hcnRpbiBIaWNrcyA8bW9ydEBib3JrLm9yZz4KPiAtLS0KCmNoZWNrcGF0Y2gg Y29tcGxhaW5zIGFib3V0IGZvcm1hdHRpbmcsIHBsZWFzZSBjaGVjay4KCj4gIGRyaXZlcnMvY3J5 cHRvL3RhbGl0b3MuYyB8ICAgMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g IGRyaXZlcnMvY3J5cHRvL3RhbGl0b3MuaCB8ICAgIDEgKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDM0 IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5j IGIvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5jCj4gaW5kZXggNmIyYTE5YS4uMzhjYmRlMSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2NyeXB0by90YWxpdG9zLmMKPiArKysgYi9kcml2ZXJzL2NyeXB0 by90YWxpdG9zLmMKPiBAQCAtNDAsOSArNDAsMTEgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L3NwaW5s b2NrLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L3NsYWIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2RldmljZS1tYXBwZXIuaD4KPiAgCj4gICNpbmNs dWRlIDxjcnlwdG8vYWxnYXBpLmg+Cj4gICNpbmNsdWRlIDxjcnlwdG8vYWVzLmg+Cj4gKyNpbmNs dWRlIDxjcnlwdG8veHRzLmg+Cj4gICNpbmNsdWRlIDxjcnlwdG8vZGVzLmg+Cj4gICNpbmNsdWRl IDxjcnlwdG8vc2hhLmg+Cj4gICNpbmNsdWRlIDxjcnlwdG8vbWQ1Lmg+Cj4gQEAgLTE0NjQsOSAr MTQ2NiwyMiBAQCBzdGF0aWMgc3RydWN0IHRhbGl0b3NfZWRlc2MgKmFibGtjaXBoZXJfZWRlc2Nf YWxsb2Moc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqCj4gIAkJCQkJCSAgICBhcmVxLCBib29s IGVuY3J5cHQpCj4gIHsKPiAgCXN0cnVjdCBjcnlwdG9fYWJsa2NpcGhlciAqY2lwaGVyID0gY3J5 cHRvX2FibGtjaXBoZXJfcmVxdGZtKGFyZXEpOwo+ICsJc3RydWN0IGNyeXB0b190Zm0gKnRmbSA9 IChzdHJ1Y3QgY3J5cHRvX3RmbSAqKWNpcGhlcjsKPiAgCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4 ID0gY3J5cHRvX2FibGtjaXBoZXJfY3R4KGNpcGhlcik7Cj4gIAl1bnNpZ25lZCBpbnQgaXZzaXpl ID0gY3J5cHRvX2FibGtjaXBoZXJfaXZzaXplKGNpcGhlcik7Cj4gIAo+ICsJLyoKPiArCSAqIEFF Uy1YVFMgdXNlcyB0aGUgZmlyc3QgdHdvIEFFUyBDb250ZXh0IHJlZ2lzdGVycyBmb3I6Cj4gKwkg Kgo+ICsJICogICAgIFJlZ2lzdGVyIDE6ICAgU2VjdG9yIE51bWJlciAoTGl0dGxlIEVuZGlhbikK PiArCSAqICAgICBSZWdpc3RlciAyOiAgIFNlY3RvciBTaXplICAgKEJpZyBFbmRpYW4pCj4gKwkg Kgo+ICsJICogV2hlcmVhcyBBRVMtQ0JDIHVzZXMgcmVnaXN0ZXJzIDEvMiBhcyBhIDE2LWJ5dGUg SVYuCj4gKwkgKi8KPiArCWlmICghc3RyY21wKGNyeXB0b190Zm1fYWxnX25hbWUodGZtKSwieHRz KGFlcykiKSkKCkkgZ3Vlc3MgaXQgd291bGQgYmUgYmV0dGVyIHRvIHVzZSBjdHgtPmRlc2NfaGRy X3RlbXBsYXRlIGluc3RlYWQgb2YKc3RyaW5nIGNvbXBhcmlzb24uCgo+ICsJCS8qIEZpeGVkIHNp emVkIHNlY3RvciAqLwo+ICsJCSooKHU2NCAqKWFyZXEtPmluZm8gKyAxKSA9IGNwdV90b19iZTY0 KCgxPDxTRUNUT1JfU0hJRlQpKTsKPiArCj4gIAlyZXR1cm4gdGFsaXRvc19lZGVzY19hbGxvYyhj dHgtPmRldiwgTlVMTCwgYXJlcS0+c3JjLCBhcmVxLT5kc3QsCj4gIAkJCQkgICBhcmVxLT5pbmZv LCAwLCBhcmVxLT5uYnl0ZXMsIDAsIGl2c2l6ZSwgMCwKPiAgCQkJCSAgIGFyZXEtPmJhc2UuZmxh Z3MsICZhcmVxLT5iYXNlLCBlbmNyeXB0KTsKPiBAQCAtMjE5Miw2ICsyMjA3LDI0IEBAIHN0YXRp YyBzdHJ1Y3QgdGFsaXRvc19hbGdfdGVtcGxhdGUgZHJpdmVyX2FsZ3NbXSA9IHsKPiAgCQkgICAg ICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfQ0JDIHwKPiAgCQkgICAgICAgICAg ICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfM0RFUywKPiAgCX0sCj4gKwl7CS50eXBlID0g Q1JZUFRPX0FMR19UWVBFX0FCTEtDSVBIRVIsCj4gKwkJLmFsZy5jcnlwdG8gPSB7Cj4gKwkJCS5j cmFfbmFtZSA9ICJ4dHMoYWVzKSIsCj4gKwkJCS5jcmFfZHJpdmVyX25hbWUgPSAieHRzLWFlcy10 YWxpdG9zIiwKPiArCQkJLmNyYV9ibG9ja3NpemUgPSBYVFNfQkxPQ0tfU0laRSwKPiArCQkJLmNy YV9mbGFncyA9IENSWVBUT19BTEdfVFlQRV9BQkxLQ0lQSEVSIHwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENSWVBUT19BTEdfQVNZTkMsCj4gKwkJCS5jcmFfYWJsa2Np cGhlciA9IHsKPiArCQkJCS5taW5fa2V5c2l6ZSA9IEFFU19NSU5fS0VZX1NJWkUgKiAyLAo+ICsJ CQkJLm1heF9rZXlzaXplID0gQUVTX01BWF9LRVlfU0laRSAqIDIsCj4gKwkJCQkuaXZzaXplID0g WFRTX0JMT0NLX1NJWkUsCj4gKwkJCX0KPiArCQl9LAo+ICsJCS5kZXNjX2hkcl90ZW1wbGF0ZSA9 IERFU0NfSERSX1RZUEVfQ09NTU9OX05PTlNOT09QX05PX0FGRVUgfAo+ICsJCQkJCURFU0NfSERS X1NFTDBfQUVTVSB8Cj4gKwkJCQkJREVTQ19IRFJfTU9ERTBfQUVTVV9YVFMsCj4gKwl9LAo+ICsK PiAgCS8qIEFIQVNIIGFsZ29yaXRobXMuICovCj4gIAl7CS50eXBlID0gQ1JZUFRPX0FMR19UWVBF X0FIQVNILAo+ICAJCS5hbGcuaGFzaCA9IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8v dGFsaXRvcy5oIGIvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5oCj4gaW5kZXggYTZmNzNlMi4uNzM1 ZGE4MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2NyeXB0by90YWxpdG9zLmgKPiArKysgYi9kcml2 ZXJzL2NyeXB0by90YWxpdG9zLmgKPiBAQCAtMzE2LDYgKzMxNiw3IEBAIGV4dGVybiBpbnQgdGFs aXRvc19zdWJtaXQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgY2gsIHN0cnVjdCB0YWxpdG9zX2Vk ZXNjICplZGVzCj4gIC8qIHByaW1hcnkgZXhlY3V0aW9uIHVuaXQgbW9kZSAoTU9ERTApIGFuZCBk ZXJpdmF0aXZlcyAqLwo+ICAjZGVmaW5lCURFU0NfSERSX01PREUwX0VOQ1JZUFQJCWNwdV90b19i ZTMyKDB4MDAxMDAwMDApCj4gICNkZWZpbmUJREVTQ19IRFJfTU9ERTBfQUVTVV9DQkMJCWNwdV90 b19iZTMyKDB4MDAyMDAwMDApCj4gKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfQUVTVV9YVFMJCWNw dV90b19iZTMyKDB4MDQyMDAwMDApCj4gICNkZWZpbmUJREVTQ19IRFJfTU9ERTBfREVVX0NCQwkJ Y3B1X3RvX2JlMzIoMHgwMDQwMDAwMCkKPiAgI2RlZmluZQlERVNDX0hEUl9NT0RFMF9ERVVfM0RF UwkJY3B1X3RvX2JlMzIoMHgwMDIwMDAwMCkKPiAgI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVV X0NPTlQJY3B1X3RvX2JlMzIoMHgwODAwMDAwMCkKPiAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eHBwYy1kZXYgbWFpbGluZyBsaXN0CkxpbnV4 cHBjLWRldkBsaXN0cy5vemxhYnMub3JnCmh0dHBzOi8vbGlzdHMub3psYWJzLm9yZy9saXN0aW5m by9saW51eHBwYy1kZXY= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0130.outbound.protection.outlook.com [157.56.111.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id AAD741A006F for ; Sat, 28 Feb 2015 02:47:03 +1100 (AEDT) Message-ID: <54F09163.5080007@freescale.com> Date: Fri, 27 Feb 2015 17:46:43 +0200 From: =?UTF-8?B?SG9yaWEgR2VhbnTEgw==?= MIME-Version: 1.0 To: Martin Hicks , Kim Phillips , Scott Wood , Kumar Gala Subject: Re: [PATCH 2/2] crypto: talitos: Add AES-XTS Support References: <1424451610-5786-1-git-send-email-mort@bork.org> <1424451610-5786-3-git-send-email-mort@bork.org> In-Reply-To: <1424451610-5786-3-git-send-email-mort@bork.org> Content-Type: text/plain; charset="UTF-8" Cc: linuxppc-dev@lists.ozlabs.org, linux-crypto@vger.kernel.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On 2/20/2015 7:00 PM, Martin Hicks wrote: > The newer talitos hardware has support for AES in XTS mode. > > Signed-off-by: Martin Hicks > --- checkpatch complains about formatting, please check. > drivers/crypto/talitos.c | 33 +++++++++++++++++++++++++++++++++ > drivers/crypto/talitos.h | 1 + > 2 files changed, 34 insertions(+) > > diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c > index 6b2a19a..38cbde1 100644 > --- a/drivers/crypto/talitos.c > +++ b/drivers/crypto/talitos.c > @@ -40,9 +40,11 @@ > #include > #include > #include > +#include > > #include > #include > +#include > #include > #include > #include > @@ -1464,9 +1466,22 @@ static struct talitos_edesc *ablkcipher_edesc_alloc(struct ablkcipher_request * > areq, bool encrypt) > { > struct crypto_ablkcipher *cipher = crypto_ablkcipher_reqtfm(areq); > + struct crypto_tfm *tfm = (struct crypto_tfm *)cipher; > struct talitos_ctx *ctx = crypto_ablkcipher_ctx(cipher); > unsigned int ivsize = crypto_ablkcipher_ivsize(cipher); > > + /* > + * AES-XTS uses the first two AES Context registers for: > + * > + * Register 1: Sector Number (Little Endian) > + * Register 2: Sector Size (Big Endian) > + * > + * Whereas AES-CBC uses registers 1/2 as a 16-byte IV. > + */ > + if (!strcmp(crypto_tfm_alg_name(tfm),"xts(aes)")) I guess it would be better to use ctx->desc_hdr_template instead of string comparison. > + /* Fixed sized sector */ > + *((u64 *)areq->info + 1) = cpu_to_be64((1< + > return talitos_edesc_alloc(ctx->dev, NULL, areq->src, areq->dst, > areq->info, 0, areq->nbytes, 0, ivsize, 0, > areq->base.flags, &areq->base, encrypt); > @@ -2192,6 +2207,24 @@ static struct talitos_alg_template driver_algs[] = { > DESC_HDR_MODE0_DEU_CBC | > DESC_HDR_MODE0_DEU_3DES, > }, > + { .type = CRYPTO_ALG_TYPE_ABLKCIPHER, > + .alg.crypto = { > + .cra_name = "xts(aes)", > + .cra_driver_name = "xts-aes-talitos", > + .cra_blocksize = XTS_BLOCK_SIZE, > + .cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | > + CRYPTO_ALG_ASYNC, > + .cra_ablkcipher = { > + .min_keysize = AES_MIN_KEY_SIZE * 2, > + .max_keysize = AES_MAX_KEY_SIZE * 2, > + .ivsize = XTS_BLOCK_SIZE, > + } > + }, > + .desc_hdr_template = DESC_HDR_TYPE_COMMON_NONSNOOP_NO_AFEU | > + DESC_HDR_SEL0_AESU | > + DESC_HDR_MODE0_AESU_XTS, > + }, > + > /* AHASH algorithms. */ > { .type = CRYPTO_ALG_TYPE_AHASH, > .alg.hash = { > diff --git a/drivers/crypto/talitos.h b/drivers/crypto/talitos.h > index a6f73e2..735da82 100644 > --- a/drivers/crypto/talitos.h > +++ b/drivers/crypto/talitos.h > @@ -316,6 +316,7 @@ extern int talitos_submit(struct device *dev, int ch, struct talitos_edesc *edes > /* primary execution unit mode (MODE0) and derivatives */ > #define DESC_HDR_MODE0_ENCRYPT cpu_to_be32(0x00100000) > #define DESC_HDR_MODE0_AESU_CBC cpu_to_be32(0x00200000) > +#define DESC_HDR_MODE0_AESU_XTS cpu_to_be32(0x04200000) > #define DESC_HDR_MODE0_DEU_CBC cpu_to_be32(0x00400000) > #define DESC_HDR_MODE0_DEU_3DES cpu_to_be32(0x00200000) > #define DESC_HDR_MODE0_MDEU_CONT cpu_to_be32(0x08000000) >