gnutls_crypto_register_cipher man page

gnutls_crypto_register_cipher — API function


#include <gnutls/crypto.h>

int gnutls_crypto_register_cipher(gnutls_cipher_algorithm_t algorithm, int priority, gnutls_cipher_init_func init, gnutls_cipher_setkey_func setkey, gnutls_cipher_setiv_func setiv, gnutls_cipher_encrypt_func encrypt, gnutls_cipher_decrypt_func decrypt, gnutls_cipher_deinit_func deinit);


gnutls_cipher_algorithm_t algorithm
is the gnutls algorithm identifier
int priority
is the priority of the algorithm
gnutls_cipher_init_func init
A function which initializes the cipher
gnutls_cipher_setkey_func setkey
A function which sets the key of the cipher
gnutls_cipher_setiv_func setiv
A function which sets the nonce/IV of the cipher (non-AEAD)
gnutls_cipher_encrypt_func encrypt
A function which performs encryption (non-AEAD)
gnutls_cipher_decrypt_func decrypt
A function which performs decryption (non-AEAD)
gnutls_cipher_deinit_func deinit
A function which deinitializes the cipher


This function will register a cipher algorithm to be used by gnutls. Any algorithm registered will override the included algorithms and by convention kernel implemented algorithms have priority of 90 and CPU-assisted of 80. The algorithm with the lowest priority will be used by gnutls.

In the case the registered init or setkey functions return GNUTLS_E_NEED_FALLBACK, GnuTLS will attempt to use the next in priority registered cipher.

The functions which are marked as non-AEAD they are not required when registering a cipher to be used with the new AEAD API introduced in GnuTLS 3.4.0. Internally GnuTLS uses the new AEAD API.


GNUTLS_E_SUCCESS on success, otherwise a negative error code.



Reporting Bugs

Report bugs to <>.
Home page:

See Also

The full documentation for gnutls is maintained as a Texinfo manual. If the /usr/share/doc/gnutls/ directory does not contain the HTML form visit


3.5.8 gnutls gnutls