From: David Howells <dhowells@redhat.com>
To: netdev@vger.kernel.org
Cc: dhowells@redhat.com, Herbert Xu <herbert@gondor.apana.org.au>,
Marc Dionne <marc.dionne@auristor.com>,
Jakub Kicinski <kuba@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
Chuck Lever <chuck.lever@oracle.com>,
linux-crypto@vger.kernel.org, linux-afs@lists.infradead.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL net-next] crypto: Add Kerberos crypto lib
Date: Mon, 10 Mar 2025 12:53:56 +0000 [thread overview]
Message-ID: <953587.1741611236@warthog.procyon.org.uk> (raw)
Hi,
Could you pull this into the net-next tree please (it has been pulled into
the crypto tree[1])? This provides the Kerberos-5 crypto parts needed by
the AF_RXRPC RxGK (GSSAPI) security class. In the future, it could also be
used by NFS and SunRPC as much of the code is abstracted from there. This
is a prerequisite for the rxrpc patches[2].
It does a couple of things:
(1) Provide an AEAD crypto driver, krb5enc, that mirrors the authenc
driver, but that hashes the plaintext, not the ciphertext. This was
made a separate module rather than just being a part of the authenc
driver because it has to do all of the constituent operations in the
opposite order - which impacts the async op handling.
Testmgr data is provided for AES+SHA2 and Camellia combinations of
authenc and krb5enc used by the krb5 library. AES+SHA1 is not
provided as the RFCs don't contain usable test vectors.
(2) Provide a Kerberos 5 crypto library. This is an extract from the
sunrpc driver as that code can be shared between sunrpc/nfs and
rxrpc/afs. This provides encryption, decryption, get MIC and verify
MIC routines that use and wrap the crypto functions, along with some
functions to provide layout management.
This supports AES+SHA1, AES+SHA2 and Camellia encryption types.
Self-testing is provided that goes further than is possible with
testmgr, doing subkey derivation as well.
David
Link: https://lore.kernel.org/linux-crypto/3709378.1740991489@warthog.procyon.org.uk/ [1]
Link: https://web.git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-next [2]
---
The following changes since commit 1e15510b71c99c6e49134d756df91069f7d18141:
Merge tag 'net-6.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net (2025-02-27 09:32:42 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git tags/crypto-krb5-20250228
for you to fetch changes up to 0dd8f8533a833eeb8e51034072a59930bcbec725:
crypto/krb5: Implement crypto self-testing (2025-02-28 09:42:42 +0000)
----------------------------------------------------------------
crypto: Add Kerberos crypto lib
----------------------------------------------------------------
David Howells (17):
crypto/krb5: Add API Documentation
crypto/krb5: Add some constants out of sunrpc headers
crypto: Add 'krb5enc' hash and cipher AEAD algorithm
crypto/krb5: Test manager data
crypto/krb5: Implement Kerberos crypto core
crypto/krb5: Add an API to query the layout of the crypto section
crypto/krb5: Add an API to alloc and prepare a crypto object
crypto/krb5: Add an API to perform requests
crypto/krb5: Provide infrastructure and key derivation
crypto/krb5: Implement the Kerberos5 rfc3961 key derivation
crypto/krb5: Provide RFC3961 setkey packaging functions
crypto/krb5: Implement the Kerberos5 rfc3961 encrypt and decrypt functions
crypto/krb5: Implement the Kerberos5 rfc3961 get_mic and verify_mic
crypto/krb5: Implement the AES enctypes from rfc3962
crypto/krb5: Implement the AES enctypes from rfc8009
crypto/krb5: Implement the Camellia enctypes from rfc6803
crypto/krb5: Implement crypto self-testing
Documentation/crypto/index.rst | 1 +
Documentation/crypto/krb5.rst | 262 +++++++++++++
crypto/Kconfig | 13 +
crypto/Makefile | 3 +
crypto/krb5/Kconfig | 26 ++
crypto/krb5/Makefile | 18 +
crypto/krb5/internal.h | 247 ++++++++++++
crypto/krb5/krb5_api.c | 452 ++++++++++++++++++++++
crypto/krb5/krb5_kdf.c | 145 +++++++
crypto/krb5/rfc3961_simplified.c | 797 +++++++++++++++++++++++++++++++++++++++
crypto/krb5/rfc3962_aes.c | 115 ++++++
crypto/krb5/rfc6803_camellia.c | 237 ++++++++++++
crypto/krb5/rfc8009_aes2.c | 362 ++++++++++++++++++
crypto/krb5/selftest.c | 544 ++++++++++++++++++++++++++
crypto/krb5/selftest_data.c | 291 ++++++++++++++
crypto/krb5enc.c | 504 +++++++++++++++++++++++++
crypto/testmgr.c | 16 +
crypto/testmgr.h | 351 +++++++++++++++++
include/crypto/authenc.h | 2 +
include/crypto/krb5.h | 160 ++++++++
20 files changed, 4546 insertions(+)
create mode 100644 Documentation/crypto/krb5.rst
create mode 100644 crypto/krb5/Kconfig
create mode 100644 crypto/krb5/Makefile
create mode 100644 crypto/krb5/internal.h
create mode 100644 crypto/krb5/krb5_api.c
create mode 100644 crypto/krb5/krb5_kdf.c
create mode 100644 crypto/krb5/rfc3961_simplified.c
create mode 100644 crypto/krb5/rfc3962_aes.c
create mode 100644 crypto/krb5/rfc6803_camellia.c
create mode 100644 crypto/krb5/rfc8009_aes2.c
create mode 100644 crypto/krb5/selftest.c
create mode 100644 crypto/krb5/selftest_data.c
create mode 100644 crypto/krb5enc.c
create mode 100644 include/crypto/krb5.h
next reply other threads:[~2025-03-10 12:54 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 12:53 David Howells [this message]
2025-03-11 23:14 ` [GIT PULL net-next] crypto: Add Kerberos crypto lib David Howells
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=953587.1741611236@warthog.procyon.org.uk \
--to=dhowells@redhat.com \
--cc=chuck.lever@oracle.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=herbert@gondor.apana.org.au \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-afs@lists.infradead.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.dionne@auristor.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).