Messages in this thread | | | Subject | Re: Why the auxiliary cipher in gss_krb5_crypto.c? | From | Chuck Lever <> | Date | Fri, 4 Dec 2020 11:05:24 -0500 |
| |
> On Dec 4, 2020, at 10:46 AM, Bruce Fields <bfields@fieldses.org> wrote: > > On Fri, Dec 04, 2020 at 02:59:35PM +0000, David Howells wrote: >> Hi Chuck, Bruce, >> >> Why is gss_krb5_crypto.c using an auxiliary cipher? For reference, the >> gss_krb5_aes_encrypt() code looks like the attached. >> >>> From what I can tell, in AES mode, the difference between the main cipher and >> the auxiliary cipher is that the latter is "cbc(aes)" whereas the former is >> "cts(cbc(aes))" - but they have the same key. >> >> Reading up on CTS, I'm guessing the reason it's like this is that CTS is the >> same as the non-CTS, except for the last two blocks, but the non-CTS one is >> more efficient. > > CTS is cipher-text stealing, isn't it? I think it was Kevin Coffman > that did that, and I don't remember the history. I thought it was > required by some spec or peer implementation (maybe Windows?) but I > really don't remember. It may predate git. I'll dig around and see > what I can find.
I can't add more here, this design comes from well before I started working on this body of code (though, I worked near Kevin when he implemented it).
-- Chuck Lever
| |