lkml.org 
[lkml]   [2021]   [Jan]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 0/5] Add KDF implementations to crypto API
    Date
    Hi,

    The key derviation functions are considered to be a cryptographic
    operation. As cryptographic operations are provided via the kernel
    crypto API, this patch set consolidates the KDF implementations into the
    crypto API.

    The KDF implementations are provided as service functions. Yet, the
    interface to the two provided KDFs are identical with the goal to allow
    them to be transformed into a crypto API template eventually.

    The KDFs execute a power-on self test with test vectors from commonly
    known sources.

    Tbe SP800-108 KDF implementation is used to replace the implementation
    in the keys subsystem. The implementation was verified using the
    keyutils command line test code provided in
    tests/keyctl/dh_compute/valid. All tests show that the expected values
    are calculated with the new code.

    The HKDF addition is used to replace the implementation in the filesystem
    crypto extension. This code was tested by using an EXT4 encrypted file
    system that was created and contains files written to by the current
    implementation. Using the new implementation a successful read of the
    existing files was possible and new files / directories were created
    and read successfully. These newly added file system objects could be
    successfully read using the current code. Yet if there is a test suite
    to validate whether the invokcation of the HKDF calculates the same
    result as the existing implementation, I would be happy to validate
    the implementation accordingly.

    Stephan Mueller (5):
    crypto: Add key derivation self-test support code
    crypto: add SP800-108 counter key derivation function
    crypto: add RFC5869 HKDF
    security: DH - use KDF implementation from crypto API
    fs: use HKDF implementation from kernel crypto API

    crypto/Kconfig | 14 ++
    crypto/Makefile | 6 +
    crypto/hkdf.c | 226 +++++++++++++++++++++++++
    crypto/kdf_sp800108.c | 149 ++++++++++++++++
    fs/crypto/Kconfig | 2 +-
    fs/crypto/fscrypt_private.h | 4 +-
    fs/crypto/hkdf.c | 108 +++---------
    include/crypto/hkdf.h | 48 ++++++
    include/crypto/internal/kdf_selftest.h | 68 ++++++++
    include/crypto/kdf_sp800108.h | 59 +++++++
    security/keys/Kconfig | 2 +-
    security/keys/dh.c | 118 ++-----------
    12 files changed, 617 insertions(+), 187 deletions(-)
    create mode 100644 crypto/hkdf.c
    create mode 100644 crypto/kdf_sp800108.c
    create mode 100644 include/crypto/hkdf.h
    create mode 100644 include/crypto/internal/kdf_selftest.h
    create mode 100644 include/crypto/kdf_sp800108.h

    --
    2.26.2




    \
     
     \ /
      Last update: 2021-01-04 23:01    [W:3.761 / U:0.868 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site