Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Uses libnettle as low-level crypto library #3576

Open
wants to merge 17 commits into
base: devel
Choose a base branch
from
Open

Conversation

jblomer
Copy link
Member

@jblomer jblomer commented Apr 11, 2024

Changes from OpenSSL/LibreSSL to libnettle for libcvmfs_crypto. Libnettle is taken from the system on Linux and vendored for macOS. This PR replaces hashing and symmetric crypto.

For the public-key crypto, it is likely best to still depend on OpenSSL for the I/O of (PEM-)keys and X.509 certificates. For these operations, we can take stock OpenSSL (does not require LibreSSL). The actual RSA operations can also move to nettle.

Add micro benchmarks for RipeMD160 and SHAKE-128 and HMAC-SHA256.

TODOs:

  • Add libnettle to build nodes
  • Add libnettle to build requirements
  • Use libnettle for public-key crypto in signature manager; depends on Overhaul signature manager #3007 and may be best done in a follow-up PR
  • Long-term: work on libnettle support for SHAKE-128 (currently only SHAKE-256 available). Edit: already merged

Based on #3558 (needs to be merged first for the CI to work)

Fixes #3555

@jblomer jblomer requested a review from vvolkl April 11, 2024 11:56
@jblomer jblomer changed the title Uses libnettle as low-level crypto library [WIP] Uses libnettle as low-level crypto library Apr 11, 2024
@cernvm-bot
Copy link
Collaborator

linter finished with errors:

Done procestest/unittests/t_encrypt.cc:149:  At least two spaces is best between code and comments  [whitespace/comments] [2]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

libressl sha1 performance regression vs openssl.
2 participants