[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <468625.1607342512@warthog.procyon.org.uk>
Date: Mon, 07 Dec 2020 12:01:52 +0000
From: David Howells <dhowells@...hat.com>
To: Ard Biesheuvel <ardb@...nel.org>
Cc: dhowells@...hat.com, Bruce Fields <bfields@...ldses.org>,
Chuck Lever <chuck.lever@...cle.com>,
CIFS <linux-cifs@...r.kernel.org>,
Linux NFS Mailing List <linux-nfs@...r.kernel.org>,
Herbert Xu <herbert@...dor.apana.org.au>,
"open list:BPF JIT for MIPS (32-BIT AND 64-BIT)"
<netdev@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Trond Myklebust <trond.myklebust@...merspace.com>,
Linux Crypto Mailing List <linux-crypto@...r.kernel.org>,
linux-fsdevel@...r.kernel.org, linux-afs@...ts.infradead.org
Subject: Re: Why the auxiliary cipher in gss_krb5_crypto.c?
Ard Biesheuvel <ardb@...nel.org> wrote:
> > Yeah - the problem with that is that for sunrpc, we might be dealing with 1MB
> > plus bits of non-contiguous pages, requiring >8K of scatterlist elements
> > (admittedly, we can chain them, but we may have to do one or more large
> > allocations).
> >
> > > However, I would recommend against it:
> >
> > Sorry, recommend against what?
> >
>
> Recommend against the current approach of manipulating the input like
> this and feeding it into the skcipher piecemeal.
Right. I understand the problem, but as I mentioned above, the scatterlist
itself becomes a performance issue as it may exceed two pages in size. Double
that as there may need to be separate input and output scatterlists.
> Herbert recently made some changes for MSG_MORE support in the AF_ALG
> code, which permits a skcipher encryption to be split into several
> invocations of the skcipher layer without the need for this complexity
> on the side of the caller. Maybe there is a way to reuse that here.
> Herbert?
I wonder if it would help if the input buffer and output buffer didn't have to
correspond exactly in usage - ie. the output buffer could be used at a slower
rate than the input to allow for buffering inside the crypto algorithm.
> > Can you also do SHA at the same time in the same loop?
>
> SHA-1 or HMAC-SHA1? The latter could probably be modeled as an AEAD.
> The former doesn't really fit the current API so we'd have to invent
> something for it.
The hashes corresponding to the kerberos enctypes I'm supporting are:
HMAC-SHA1 for aes128-cts-hmac-sha1-96 and aes256-cts-hmac-sha1-96.
HMAC-SHA256 for aes128-cts-hmac-sha256-128
HMAC-SHA384 for aes256-cts-hmac-sha384-192
CMAC-CAMELLIA for camellia128-cts-cmac and camellia256-cts-cmac
I'm not sure you can support all of those with the instructions available.
David
Powered by blists - more mailing lists