Branch: refs/heads/add-crypto-enumeration-api
Home: https://github.com/kronosnet/kronosnet
Commit: 97b717b709dc834082915520371f47b655c64892
https://github.com/kronosnet/kronosnet/commit/97b717b709dc834082915520371f4…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-05-07 (Thu, 07 May 2026)
Changed paths:
M libknet/crypto.c
M libknet/libknet.h
M libknet/libknet_exported_syms
M libknet/tests/api-check.mk
A libknet/tests/api_knet_get_crypto_cipher_list.c
A libknet/tests/api_knet_get_crypto_hash_list.c
M man/Makefile.am
Log Message:
-----------
Add API to enumerate supported cipher modes and hash algorithms
Implements issue #478 by introducing two new API functions:
- knet_get_crypto_cipher_list(): Returns AES cipher modes (CBC/CTR) supported across all crypto backends
- knet_get_crypto_hash_list(): Returns hash algorithms supported across all crypto backends
The functions return the intersection of capabilities across OpenSSL, NSS, and libgcrypt backends,
ensuring applications can reliably use any returned cipher/hash combination regardless of which
crypto module is loaded at runtime.
Key implementation decisions:
- Uses hardcoded lists to avoid loading all crypto modules unconditionally
- Flattened cipher list includes both OpenSSL (hyphenated) and NSS/gcrypt (non-hyphenated) naming
conventions as separate entries to simplify application logic
- Cipher list: 12 entries covering AES-128/192/256 in CBC and CTR modes
- Hash list: 5 entries covering md5, sha1, sha256, sha384, sha512
New structures:
- knet_crypto_cipher_info: name, mode, key_bits
- knet_crypto_hash_info: name, hash_bits
Includes comprehensive API tests following existing patterns.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
To unsubscribe from these emails, change your notification settings at https://github.com/kronosnet/kronosnet/settings/notifications
41/41 Non-voting fails: debian-12-x86-64(nonvoting-clang: Run tests) rhel-8-s390x(nonvoting-clang: Run tests) ubuntu-22-04-lts-x86-64(nonvoting-clang: Run tests) rhel-8-x86-64(nonvoting-clang: Run tests) rhel-8-power9-ppc64le(nonvoting-clang: Run tests) centos-9-x86-64(nonvoting-clang: Run tests) centos-9-s390x(nonvoting-clang: Run tests) freebsd-15-x86-64(nonvoting-clang: Run tests) freebsd-devel-x86-64(nonvoting: Run tests) freebsd-devel-x86-64(nonvoting-clang: Run tests) freebsd-13-x86-64(nonvoting-clang: Run tests) freebsd-14-x86-64(nonvoting-clang: Run tests) debian-unstable-x86-64(nonvoting: Run tests) debian-unstable-x86-64(nonvoting-clang: Run tests) debian-testing-x86-64(nonvoting-clang: Run tests) debian-experimental-x86-64(nonvoting: Run tests) ubuntu-devel-x86-64(nonvoting: Run tests) debian-experimental-x86-64(nonvoting-clang: Run tests) ubuntu-devel-x86-64(nonvoting-clang: Run tests) debian-13-x86-64(nonvoting-clang: Run tests) rhel-10-power9-ppc64le(nonvoting-clang: Run tests) ubuntu-25-10-x86-64(nonvoting-clang: Run tests) rhel-10-s390x(nonvoting-clang: Run tests) centos-10-s390x(nonvoting-clang: Run tests) ubuntu-24-04-lts-x86-64(nonvoting-clang: Run tests) fedora-rawhide-power9-ppc64le(nonvoting: Run tests) fedora-rawhide-power9-ppc64le(nonvoting-clang: Run tests) alpine-x86-64(nonvoting: Run tests) centos-10-x86-64(nonvoting-clang: Run tests) alpine-x86-64(nonvoting-clang: Run tests) rhel-10-x86-64(nonvoting-clang: Run tests) fedora-42-x86-64(nonvoting-clang: Run tests) rhel-9-x86-64(nonvoting-clang: Run tests) fedora-43-power9-ppc64le(nonvoting-clang: Run tests) fedora-rawhide-x86-64(nonvoting: Run tests) fedora-rawhide-x86-64(nonvoting-clang: Run tests) fedora-43-x86-64(nonvoting-clang: Run tests) rhel-9-s390x(nonvoting-clang: Run tests) fedora-43-s390x(nonvoting-clang: Run tests) fedora-rawhide-s390x(nonvoting: Run tests) fedora-rawhide-s390x(nonvoting-clang: Run tests)
28/50 Voting fails: rhel-8-coverity-x86-64(voting: Run tests) debian-12-x86-64(voting: Run tests) ubuntu-22-04-lts-x86-64(voting: Run tests) rhel-8-s390x(voting: Run tests) rhel-8-x86-64(voting: Run tests) rhel-8-power9-ppc64le(voting: Run tests) centos-9-x86-64(voting: Run tests) centos-9-s390x(voting: Run tests) freebsd-15-x86-64(voting: Run tests) freebsd-13-x86-64(voting: Run tests) freebsd-14-x86-64(voting: Run tests) rhel-9-coverity-x86-64(voting: Run tests) rhel-10-coverity-x86-64(voting: Run tests) debian-testing-x86-64(voting: Run tests) debian-13-x86-64(voting: Run tests) rhel-10-power9-ppc64le(voting: Run tests) ubuntu-25-10-x86-64(voting: Run tests) rhel-10-s390x(voting: Run tests) centos-10-s390x(voting: Run tests) ubuntu-24-04-lts-x86-64(voting: Run tests) centos-10-x86-64(voting: Run tests) rhel-10-x86-64(voting: Run tests) fedora-42-x86-64(voting: Run tests) rhel-9-x86-64(voting: Run tests) fedora-43-power9-ppc64le(voting: Run tests) fedora-43-x86-64(voting: Run tests) rhel-9-s390x(voting: Run tests) fedora-43-s390x(voting: Run tests)
Run reason: Pull request #651 updated
Total runtime: 22 hr
Split logs: https://ci.kronosnet.org/job/fence-agents/job/fence-agents-pipeline/job/PR-…
Full log: https://ci.kronosnet.org/job/fence-agents/job/fence-agents-pipeline/job/PR-…
Full Coverity results:
http://ci.kronosnet.org/coverity/fence-agents/rhel-8-coverity-x86-64/pr651/…http://ci.kronosnet.org/coverity/fence-agents/rhel-9-coverity-x86-64/pr651/…http://ci.kronosnet.org/coverity/fence-agents/rhel-10-coverity-x86-64/pr651…