KNET_GET...HASH_LIST(3)
π knet_get_crypto_hash_list β bestie edition π
okay so you're in the Kronosnet Programmer's Manual, section 3 (that's the library-calls girlypop section, iykyk), and we're about to talk about knet_get_crypto_hash_list. grab a snack. this one's short but she's iconic. β¨
πΈ NAME πΈ
knet_get_crypto_hash_list β get a list of commonly supported hash algorithms. that's it. that's the whole vibe. π
π¦ SYNOPSIS π¦
#include <libknet.h>
int knet_get_crypto_hash_list(
struct knet_crypto_hash_info *hash_list,
size_t *hash_list_entries
);
look at her. two args. no drama. π
β¨ DESCRIPTION β¨
okay so knet_get_crypto_hash_list is literally the friend who tells you which hash algorithms everyone can agree on.
this function returns hash algorithms that are supported across all crypto backends (OpenSSL, NSS, libgcrypt). no cap β the list represents the intersection of capabilities, not backend-specific features. so if you're out here expecting a special lil exclusive algorithm that only one backend has? not today, bestie. intersection only. π€
now the args, let's go:
hash_listβ array ofstruct knet_crypto_hash_info. if it'sNULL, then only the number of structs is returned inhash_list_entries, which is literally there so you can allocate sufficient space. and listen: it is safe to allocate 16 structs to avoid calling this function twice. so you could just do the two-call dance, or you could be efficient and grab 16 slots up front. main character energy either way. πhash_list_entriesβ returns the number of hash algorithms inhash_list. slay.
π§ STRUCTURES π§
structure returned from knet_get_crypto_hash_list() containing information about supported hash algorithms:
struct knet_crypto_hash_info {
const char *name; /* Hash algorithm name (e.g., "sha256", "sha512") */
int hash_bits; /* Hash output size in bits */
char pad[256]; /* Currently unused padding */
};
so name is the algorithm name (think "sha256", "sha512" β the classics π), hash_bits is the hash output size in bits, and pad is 256 bytes of currently unused padding. she's just sitting there. minding her business. don't touch her. π
π«Ά RETURN VALUE π«Ά
knet_get_crypto_hash_list returns 0 on success, -1 on error, and errno is set. that's the whole story. if you got a 0, you ate. if you got a -1, check errno and regroup. π
π SEE ALSO π
the whole friend group, in the exact order they showed up:
knet_handle_remove_datafd(3)knet_handle_get_stats(3)knet_host_add(3)knet_handle_pmtud_setfreq(3)knet_handle_pmtud_get(3)knet_handle_crypto_use_config(3)knet_host_get_id_by_host_name(3)knet_host_get_status(3)knet_link_add_acl(3)knet_link_get_pong_count(3)knet_link_get_priority(3)knet_handle_free(3)knet_handle_enable_sock_notify(3)knet_handle_get_datafd(3)knet_recv(3)knet_link_get_ping_timers(3)knet_log_get_subsystem_id(3)knet_host_remove(3)knet_host_enable_status_change_notify(3)knet_strtoaddr(3)knet_link_rm_acl(3)knet_send(3)knet_handle_enable_pmtud_notify(3)knet_get_crypto_cipher_list(3)knet_handle_get_transport_reconnect_interval(3)knet_link_get_enable(3)knet_link_set_priority(3)knet_log_set_loglevel(3)knet_handle_get_channel(3)knet_link_get_config(3)knet_link_get_link_list(3)knet_get_transport_list(3)knet_get_transport_id_by_name(3)knet_log_get_loglevel_id(3)knet_handle_new_ex(3)knet_host_set_name(3)knet_addrtostr(3)knet_handle_setfwd(3)knet_get_compress_list(3)knet_host_set_policy(3)knet_get_transport_name_by_id(3)knet_handle_enable_filter(3)knet_handle_crypto_rx_clear_traffic(3)knet_handle_compress(3)knet_link_get_status(3)knet_handle_add_datafd(3)knet_send_sync(3)knet_log_get_loglevel_name(3)knet_handle_enable_access_lists(3)knet_host_get_host_list(3)knet_host_get_policy(3)knet_link_set_enable(3)knet_link_set_pong_count(3)knet_log_get_subsystem_name(3)knet_host_get_name_by_host_id(3)knet_link_clear_config(3)knet_log_get_loglevel(3)knet_handle_new(3)knet_handle_pmtud_getfreq(3)knet_handle_pmtud_set(3)knet_handle_clear_stats(3)knet_link_set_config(3)knet_handle_crypto_set_config(3)knet_handle_crypto(3)knet_get_crypto_list(3)knet_handle_set_transport_reconnect_interval(3)knet_link_clear_acl(3)knet_link_set_ping_timers(3)knet_handle_setprio_dscp(3)knet_link_insert_acl(3)
π COPYRIGHT π
Copyright (C) 2010-2026 Red Hat, Inc. All rights reserved.
that's the whole page, bestie. go call it, pass NULL first if you're feeling cautious, or just vibe with those 16 structs. periodt. π
kronosnet Β· 2026-07-20 Β· and that's a wrap on KNET_GET...HASH_LIST(3) π¦β¨π
π¦ where this page comes from
- fedora 43: libknet1-devel 1.35-1.fc43 Β· LGPL-2.1-or-later
- fedora 43: libknet1-devel 1.35-1.fc43 Β· LGPL-2.1-or-later
- fedora 44: libknet1-devel 1.35-1.fc44 Β· LGPL-2.1-or-later
- fedora 44: libknet1-devel 1.35-1.fc44 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms