32.27.2 GnuTLS Cryptographic Functions
function
gnutls-digestsโ
This function returns the alist of the GnuTLS digest algorithms.
Each entry has a key which represents the algorithm, followed by a plist with internal details about the algorithm. The plist will have :type gnutls-digest-algorithm
and also will have the key :digest-algorithm-length 64
to indicate the size, in bytes, of the resulting digest.
There is a name parallel between GnuTLS MAC and digest algorithms but they are separate things internally and should not be mixed.
function
gnutls-hash-digest digest-method inputโ
The digest-method
can be the whole plist from gnutls-digests
, or just the symbol key, or a string with the name of that symbol.
The input
can be specified as a buffer or string or in other ways (see Format of GnuTLS Cryptography Inputs).
This function returns nil
on error, and signals a Lisp error if the digest-method
or input
are invalid. On success, it returns a list of a binary string (the output) and the IV used.
function
gnutls-macsโ
This function returns the alist of the GnuTLS MAC algorithms.
Each entry has a key which represents the algorithm, followed by a plist with internal details about the algorithm. The plist will have :type gnutls-mac-algorithm
and also will have the keys :mac-algorithm-length
:mac-algorithm-keysize
:mac-algorithm-noncesize
to indicate the size, in bytes, of the resulting hash, the key, and the nonce respectively.
The nonce is currently unused and only some MACs support it.
There is a name parallel between GnuTLS MAC and digest algorithms but they are separate things internally and should not be mixed.
function
gnutls-hash-mac hash-method key inputโ
The hash-method
can be the whole plist from gnutls-macs
, or just the symbol key, or a string with the name of that symbol.
The key
can be specified as a buffer or string or in other ways (see Format of GnuTLS Cryptography Inputs). The key
will be wiped after use if itโs a string.
The input
can be specified as a buffer or string or in other ways (see Format of GnuTLS Cryptography Inputs).
This function returns nil
on error, and signals a Lisp error if the hash-method
or key
or input
are invalid.
On success, it returns a list of a binary string (the output) and the IV used.
function
gnutls-ciphersโ
This function returns the alist of the GnuTLS ciphers.
Each entry has a key which represents the cipher, followed by a plist with internal details about the algorithm. The plist will have :type gnutls-symmetric-cipher
and also will have the keys :cipher-aead-capable
set to nil
or t
to indicate AEAD capability; and :cipher-tagsize
:cipher-blocksize
:cipher-keysize
:cipher-ivsize
to indicate the size, in bytes, of the tag, block size of the resulting data, the key, and the IV respectively.
function
gnutls-symmetric-encrypt cipher key iv input \&optional aead_authโ
The cipher
can be the whole plist from gnutls-ciphers
, or just the symbol key, or a string with the name of that symbol.
The key
can be specified as a buffer or string or in other ways (see Format of GnuTLS Cryptography Inputs). The key
will be wiped after use if itโs a string.
The iv
and input
and the optional aead_auth
can be specified as a buffer or string or in other ways (see Format of GnuTLS Cryptography Inputs).
aead_auth
is only checked with AEAD ciphers, that is, ciphers whose plist has :cipher-aead-capable t
. Otherwise itโs ignored.
This function returns nil
on error, and signals a Lisp error if the cipher
or key
, iv
, or input
are invalid, or if aead_auth
was specified with an AEAD cipher and was invalid.
On success, it returns a list of a binary string (the output) and the IV used.
function
gnutls-symmetric-decrypt cipher key iv input \&optional aead_authโ
The cipher
can be the whole plist from gnutls-ciphers
, or just the symbol key, or a string with the name of that symbol.
The key
can be specified as a buffer or string or in other ways (see Format of GnuTLS Cryptography Inputs). The key
will be wiped after use if itโs a string.
The iv
and input
and the optional aead_auth
can be specified as a buffer or string or in other ways (see Format of GnuTLS Cryptography Inputs).
aead_auth
is only checked with AEAD ciphers, that is, ciphers whose plist has :cipher-aead-capable t
. Otherwise itโs ignored.
This function returns nil
on decryption error, and signals a Lisp error if the cipher
or key
, iv
, or input
are invalid, or if aead_auth
was specified with an AEAD cipher and was invalid.
On success, it returns a list of a binary string (the output) and the IV used.