Blame doc/crypto-api.texi

Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_aead_cipher_decrypt
Packit Service 4684c1
@anchor{gnutls_aead_cipher_decrypt}
Packit Service 4684c1
@deftypefun {int} {gnutls_aead_cipher_decrypt} (gnutls_aead_cipher_hd_t @var{handle}, const void * @var{nonce}, size_t @var{nonce_len}, const void * @var{auth}, size_t @var{auth_len}, size_t @var{tag_size}, const void * @var{ctext}, size_t @var{ctext_len}, void * @var{ptext}, size_t * @var{ptext_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_aead_cipher_hd_t}  type.
Packit Service 4684c1
Packit Service 4684c1
@var{nonce}: the nonce to set
Packit Service 4684c1
Packit Service 4684c1
@var{nonce_len}: The length of the nonce
Packit Service 4684c1
Packit Service 4684c1
@var{auth}: additional data to be authenticated
Packit Service 4684c1
Packit Service 4684c1
@var{auth_len}: The length of the data
Packit Service 4684c1
Packit Service 4684c1
@var{tag_size}: The size of the tag to use (use zero for the default)
Packit Service 4684c1
Packit Service 4684c1
@var{ctext}: the data to decrypt (including the authentication tag)
Packit Service 4684c1
Packit Service 4684c1
@var{ctext_len}: the length of data to decrypt (includes tag size)
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the decrypted data
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_len}: the length of decrypted data (initially must hold the maximum available size)
Packit Service 4684c1
Packit Service 4684c1
This function will decrypt the given data using the algorithm
Packit Service 4684c1
specified by the context. This function must be provided the complete
Packit Service 4684c1
data to be decrypted, including the authentication tag. On several
Packit Service 4684c1
AEAD ciphers, the authentication tag is appended to the ciphertext,
Packit Service 4684c1
though this is not a general rule. This function will fail if
Packit Service 4684c1
the tag verification fails.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on verification failure or other error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.4.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_aead_cipher_decryptv2
Packit Service 4684c1
@anchor{gnutls_aead_cipher_decryptv2}
Packit Service 4684c1
@deftypefun {int} {gnutls_aead_cipher_decryptv2} (gnutls_aead_cipher_hd_t @var{handle}, const void * @var{nonce}, size_t @var{nonce_len}, const giovec_t * @var{auth_iov}, int @var{auth_iovcnt}, const giovec_t * @var{iov}, int @var{iovcnt}, void * @var{tag}, size_t @var{tag_size})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_aead_cipher_hd_t}  type.
Packit Service 4684c1
Packit Service 4684c1
@var{nonce}: the nonce to set
Packit Service 4684c1
Packit Service 4684c1
@var{nonce_len}: The length of the nonce
Packit Service 4684c1
Packit Service 4684c1
@var{auth_iov}: additional data to be authenticated
Packit Service 4684c1
Packit Service 4684c1
@var{auth_iovcnt}: The number of buffers in  @code{auth_iov} 
Packit Service 4684c1
Packit Service 4684c1
@var{iov}: the data to decrypt
Packit Service 4684c1
Packit Service 4684c1
@var{iovcnt}: The number of buffers in  @code{iov} 
Packit Service 4684c1
Packit Service 4684c1
@var{tag}: The authentication tag
Packit Service 4684c1
Packit Service 4684c1
@var{tag_size}: The size of the tag to use (use zero for the default)
Packit Service 4684c1
Packit Service 4684c1
This is similar to @code{gnutls_aead_cipher_decrypt()} , but it performs
Packit Service 4684c1
in-place encryption on the provided data buffers.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.10
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_aead_cipher_deinit
Packit Service 4684c1
@anchor{gnutls_aead_cipher_deinit}
Packit Service 4684c1
@deftypefun {void} {gnutls_aead_cipher_deinit} (gnutls_aead_cipher_hd_t @var{handle})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_aead_cipher_hd_t}  type.
Packit Service 4684c1
Packit Service 4684c1
This function will deinitialize all resources occupied by the given
Packit Service 4684c1
authenticated-encryption context.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.4.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_aead_cipher_encrypt
Packit Service 4684c1
@anchor{gnutls_aead_cipher_encrypt}
Packit Service 4684c1
@deftypefun {int} {gnutls_aead_cipher_encrypt} (gnutls_aead_cipher_hd_t @var{handle}, const void * @var{nonce}, size_t @var{nonce_len}, const void * @var{auth}, size_t @var{auth_len}, size_t @var{tag_size}, const void * @var{ptext}, size_t @var{ptext_len}, void * @var{ctext}, size_t * @var{ctext_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_aead_cipher_hd_t}  type.
Packit Service 4684c1
Packit Service 4684c1
@var{nonce}: the nonce to set
Packit Service 4684c1
Packit Service 4684c1
@var{nonce_len}: The length of the nonce
Packit Service 4684c1
Packit Service 4684c1
@var{auth}: additional data to be authenticated
Packit Service 4684c1
Packit Service 4684c1
@var{auth_len}: The length of the data
Packit Service 4684c1
Packit Service 4684c1
@var{tag_size}: The size of the tag to use (use zero for the default)
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the data to encrypt
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_len}: The length of data to encrypt
Packit Service 4684c1
Packit Service 4684c1
@var{ctext}: the encrypted data including authentication tag
Packit Service 4684c1
Packit Service 4684c1
@var{ctext_len}: the length of encrypted data (initially must hold the maximum available size, including space for tag)
Packit Service 4684c1
Packit Service 4684c1
This function will encrypt the given data using the algorithm
Packit Service 4684c1
specified by the context. The output data will contain the
Packit Service 4684c1
authentication tag.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.4.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_aead_cipher_encryptv
Packit Service 4684c1
@anchor{gnutls_aead_cipher_encryptv}
Packit Service 4684c1
@deftypefun {int} {gnutls_aead_cipher_encryptv} (gnutls_aead_cipher_hd_t @var{handle}, const void * @var{nonce}, size_t @var{nonce_len}, const giovec_t * @var{auth_iov}, int @var{auth_iovcnt}, size_t @var{tag_size}, const giovec_t * @var{iov}, int @var{iovcnt}, void * @var{ctext}, size_t * @var{ctext_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_aead_cipher_hd_t}  type.
Packit Service 4684c1
Packit Service 4684c1
@var{nonce}: the nonce to set
Packit Service 4684c1
Packit Service 4684c1
@var{nonce_len}: The length of the nonce
Packit Service 4684c1
Packit Service 4684c1
@var{auth_iov}: additional data to be authenticated
Packit Service 4684c1
Packit Service 4684c1
@var{auth_iovcnt}: The number of buffers in  @code{auth_iov} 
Packit Service 4684c1
Packit Service 4684c1
@var{tag_size}: The size of the tag to use (use zero for the default)
Packit Service 4684c1
Packit Service 4684c1
@var{iov}: the data to be encrypted
Packit Service 4684c1
Packit Service 4684c1
@var{iovcnt}: The number of buffers in  @code{iov} 
Packit Service 4684c1
Packit Service 4684c1
@var{ctext}: the encrypted data including authentication tag
Packit Service 4684c1
Packit Service 4684c1
@var{ctext_len}: the length of encrypted data (initially must hold the maximum available size, including space for tag)
Packit Service 4684c1
Packit Service 4684c1
This function will encrypt the provided data buffers using the algorithm
Packit Service 4684c1
specified by the context. The output data will contain the
Packit Service 4684c1
authentication tag.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.3
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_aead_cipher_encryptv2
Packit Service 4684c1
@anchor{gnutls_aead_cipher_encryptv2}
Packit Service 4684c1
@deftypefun {int} {gnutls_aead_cipher_encryptv2} (gnutls_aead_cipher_hd_t @var{handle}, const void * @var{nonce}, size_t @var{nonce_len}, const giovec_t * @var{auth_iov}, int @var{auth_iovcnt}, const giovec_t * @var{iov}, int @var{iovcnt}, void * @var{tag}, size_t * @var{tag_size})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_aead_cipher_hd_t}  type.
Packit Service 4684c1
Packit Service 4684c1
@var{nonce}: the nonce to set
Packit Service 4684c1
Packit Service 4684c1
@var{nonce_len}: The length of the nonce
Packit Service 4684c1
Packit Service 4684c1
@var{auth_iov}: additional data to be authenticated
Packit Service 4684c1
Packit Service 4684c1
@var{auth_iovcnt}: The number of buffers in  @code{auth_iov} 
Packit Service 4684c1
Packit Service 4684c1
@var{iov}: the data to be encrypted
Packit Service 4684c1
Packit Service 4684c1
@var{iovcnt}: The number of buffers in  @code{iov} 
Packit Service 4684c1
Packit Service 4684c1
@var{tag}: The authentication tag
Packit Service 4684c1
Packit Service 4684c1
@var{tag_size}: The size of the tag to use (use zero for the default)
Packit Service 4684c1
Packit Service 4684c1
This is similar to @code{gnutls_aead_cipher_encrypt()} , but it performs
Packit Service 4684c1
in-place encryption on the provided data buffers.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.10
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_aead_cipher_init
Packit Service 4684c1
@anchor{gnutls_aead_cipher_init}
Packit Service 4684c1
@deftypefun {int} {gnutls_aead_cipher_init} (gnutls_aead_cipher_hd_t * @var{handle}, gnutls_cipher_algorithm_t @var{cipher}, const gnutls_datum_t * @var{key})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_aead_cipher_hd_t}  type.
Packit Service 4684c1
Packit Service 4684c1
@var{cipher}: the authenticated-encryption algorithm to use
Packit Service 4684c1
Packit Service 4684c1
@var{key}: The key to be used for encryption
Packit Service 4684c1
Packit Service 4684c1
This function will initialize an context that can be used for
Packit Service 4684c1
encryption/decryption of data. This will effectively use the
Packit Service 4684c1
current crypto backend in use by gnutls or the cryptographic
Packit Service 4684c1
accelerator in use.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.4.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_add_auth
Packit Service 4684c1
@anchor{gnutls_cipher_add_auth}
Packit Service 4684c1
@deftypefun {int} {gnutls_cipher_add_auth} (gnutls_cipher_hd_t @var{handle}, const void * @var{ptext}, size_t @var{ptext_size})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_cipher_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the data to be authenticated
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_size}: the length of the data
Packit Service 4684c1
Packit Service 4684c1
This function operates on authenticated encryption with
Packit Service 4684c1
associated data (AEAD) ciphers and authenticate the
Packit Service 4684c1
input data. This function can only be called once
Packit Service 4684c1
and before any encryption operations.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_decrypt
Packit Service 4684c1
@anchor{gnutls_cipher_decrypt}
Packit Service 4684c1
@deftypefun {int} {gnutls_cipher_decrypt} (gnutls_cipher_hd_t @var{handle}, void * @var{ctext}, size_t @var{ctext_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_cipher_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{ctext}: the data to decrypt
Packit Service 4684c1
Packit Service 4684c1
@var{ctext_len}: the length of data to decrypt
Packit Service 4684c1
Packit Service 4684c1
This function will decrypt the given data using the algorithm
Packit Service 4684c1
specified by the context.
Packit Service 4684c1
Packit Service 4684c1
Note that in AEAD ciphers, this will not check the tag. You will
Packit Service 4684c1
need to compare the tag sent with the value returned from @code{gnutls_cipher_tag()} .
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_decrypt2
Packit Service 4684c1
@anchor{gnutls_cipher_decrypt2}
Packit Service 4684c1
@deftypefun {int} {gnutls_cipher_decrypt2} (gnutls_cipher_hd_t @var{handle}, const void * @var{ctext}, size_t @var{ctext_len}, void * @var{ptext}, size_t @var{ptext_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_cipher_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{ctext}: the data to decrypt
Packit Service 4684c1
Packit Service 4684c1
@var{ctext_len}: the length of data to decrypt
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the decrypted data
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_len}: the available length for decrypted data
Packit Service 4684c1
Packit Service 4684c1
This function will decrypt the given data using the algorithm
Packit Service 4684c1
specified by the context. For block ciphers the  @code{ctext_len} must be
Packit Service 4684c1
a multiple of the block size. For the supported ciphers the plaintext
Packit Service 4684c1
data length will equal the ciphertext size.
Packit Service 4684c1
Packit Service 4684c1
Note that in AEAD ciphers, this will not check the tag. You will
Packit Service 4684c1
need to compare the tag sent with the value returned from @code{gnutls_cipher_tag()} .
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.12.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_deinit
Packit Service 4684c1
@anchor{gnutls_cipher_deinit}
Packit Service 4684c1
@deftypefun {void} {gnutls_cipher_deinit} (gnutls_cipher_hd_t @var{handle})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_cipher_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
This function will deinitialize all resources occupied by the given
Packit Service 4684c1
encryption context.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_encrypt
Packit Service 4684c1
@anchor{gnutls_cipher_encrypt}
Packit Service 4684c1
@deftypefun {int} {gnutls_cipher_encrypt} (gnutls_cipher_hd_t @var{handle}, void * @var{ptext}, size_t @var{ptext_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_cipher_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the data to encrypt
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_len}: the length of data to encrypt
Packit Service 4684c1
Packit Service 4684c1
This function will encrypt the given data using the algorithm
Packit Service 4684c1
specified by the context.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_encrypt2
Packit Service 4684c1
@anchor{gnutls_cipher_encrypt2}
Packit Service 4684c1
@deftypefun {int} {gnutls_cipher_encrypt2} (gnutls_cipher_hd_t @var{handle}, const void * @var{ptext}, size_t @var{ptext_len}, void * @var{ctext}, size_t @var{ctext_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_cipher_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the data to encrypt
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_len}: the length of data to encrypt
Packit Service 4684c1
Packit Service 4684c1
@var{ctext}: the encrypted data
Packit Service 4684c1
Packit Service 4684c1
@var{ctext_len}: the available length for encrypted data
Packit Service 4684c1
Packit Service 4684c1
This function will encrypt the given data using the algorithm
Packit Service 4684c1
specified by the context. For block ciphers the  @code{ptext_len} must be
Packit Service 4684c1
a multiple of the block size. For the supported ciphers the encrypted
Packit Service 4684c1
data length will equal the plaintext size.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.12.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_get_block_size
Packit Service 4684c1
@anchor{gnutls_cipher_get_block_size}
Packit Service 4684c1
@deftypefun {unsigned} {gnutls_cipher_get_block_size} (gnutls_cipher_algorithm_t @var{algorithm})
Packit Service 4684c1
@var{algorithm}: is an encryption algorithm
Packit Service 4684c1
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} the block size of the encryption algorithm.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_get_iv_size
Packit Service 4684c1
@anchor{gnutls_cipher_get_iv_size}
Packit Service 4684c1
@deftypefun {unsigned} {gnutls_cipher_get_iv_size} (gnutls_cipher_algorithm_t @var{algorithm})
Packit Service 4684c1
@var{algorithm}: is an encryption algorithm
Packit Service 4684c1
Packit Service 4684c1
This function returns the size of the initialization vector (IV) for the
Packit Service 4684c1
provided algorithm. For algorithms with variable size IV (e.g., AES-CCM),
Packit Service 4684c1
the returned size will be the one used by TLS.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} block size for encryption algorithm.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.2.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_get_tag_size
Packit Service 4684c1
@anchor{gnutls_cipher_get_tag_size}
Packit Service 4684c1
@deftypefun {unsigned} {gnutls_cipher_get_tag_size} (gnutls_cipher_algorithm_t @var{algorithm})
Packit Service 4684c1
@var{algorithm}: is an encryption algorithm
Packit Service 4684c1
Packit Service 4684c1
This function returns the tag size of an authenticated encryption
Packit Service 4684c1
algorithm. For non-AEAD algorithms, it returns zero.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} the tag size of the authenticated encryption algorithm.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.2.2
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_init
Packit Service 4684c1
@anchor{gnutls_cipher_init}
Packit Service 4684c1
@deftypefun {int} {gnutls_cipher_init} (gnutls_cipher_hd_t * @var{handle}, gnutls_cipher_algorithm_t @var{cipher}, const gnutls_datum_t * @var{key}, const gnutls_datum_t * @var{iv})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_cipher_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{cipher}: the encryption algorithm to use
Packit Service 4684c1
Packit Service 4684c1
@var{key}: the key to be used for encryption/decryption
Packit Service 4684c1
Packit Service 4684c1
@var{iv}: the IV to use (if not applicable set NULL)
Packit Service 4684c1
Packit Service 4684c1
This function will initialize the  @code{handle} context to be usable
Packit Service 4684c1
for encryption/decryption of data. This will effectively use the
Packit Service 4684c1
current crypto backend in use by gnutls or the cryptographic
Packit Service 4684c1
accelerator in use.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_set_iv
Packit Service 4684c1
@anchor{gnutls_cipher_set_iv}
Packit Service 4684c1
@deftypefun {void} {gnutls_cipher_set_iv} (gnutls_cipher_hd_t @var{handle}, void * @var{iv}, size_t @var{ivlen})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_cipher_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{iv}: the IV to set
Packit Service 4684c1
Packit Service 4684c1
@var{ivlen}: the length of the IV
Packit Service 4684c1
Packit Service 4684c1
This function will set the IV to be used for the next
Packit Service 4684c1
encryption block.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_cipher_tag
Packit Service 4684c1
@anchor{gnutls_cipher_tag}
Packit Service 4684c1
@deftypefun {int} {gnutls_cipher_tag} (gnutls_cipher_hd_t @var{handle}, void * @var{tag}, size_t @var{tag_size})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_cipher_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{tag}: will hold the tag
Packit Service 4684c1
Packit Service 4684c1
@var{tag_size}: the length of the tag to return
Packit Service 4684c1
Packit Service 4684c1
This function operates on authenticated encryption with
Packit Service 4684c1
associated data (AEAD) ciphers and will return the
Packit Service 4684c1
output tag.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_crypto_register_aead_cipher
Packit Service 4684c1
@anchor{gnutls_crypto_register_aead_cipher}
Packit Service 4684c1
@deftypefun {int} {gnutls_crypto_register_aead_cipher} (gnutls_cipher_algorithm_t @var{algorithm}, int @var{priority}, gnutls_cipher_init_func @var{init}, gnutls_cipher_setkey_func @var{setkey}, gnutls_cipher_aead_encrypt_func @var{aead_encrypt}, gnutls_cipher_aead_decrypt_func @var{aead_decrypt}, gnutls_cipher_deinit_func @var{deinit})
Packit Service 4684c1
@var{algorithm}: is the gnutls AEAD cipher identifier
Packit Service 4684c1
Packit Service 4684c1
@var{priority}: is the priority of the algorithm
Packit Service 4684c1
Packit Service 4684c1
@var{init}: A function which initializes the cipher
Packit Service 4684c1
Packit Service 4684c1
@var{setkey}: A function which sets the key of the cipher
Packit Service 4684c1
Packit Service 4684c1
@var{aead_encrypt}: Perform the AEAD encryption
Packit Service 4684c1
Packit Service 4684c1
@var{aead_decrypt}: Perform the AEAD decryption
Packit Service 4684c1
Packit Service 4684c1
@var{deinit}: A function which deinitializes the cipher
Packit Service 4684c1
Packit Service 4684c1
This function will register a cipher algorithm to be used by
Packit Service 4684c1
gnutls.  Any algorithm registered will override the included
Packit Service 4684c1
algorithms and by convention kernel implemented algorithms have
Packit Service 4684c1
priority of 90 and CPU-assisted of 80.  The algorithm with the lowest priority will be
Packit Service 4684c1
used by gnutls.
Packit Service 4684c1
Packit Service 4684c1
In the case the registered init or setkey functions return @code{GNUTLS_E_NEED_FALLBACK} ,
Packit Service 4684c1
GnuTLS will attempt to use the next in priority registered cipher.
Packit Service 4684c1
Packit Service 4684c1
The functions registered will be used with the new AEAD API introduced in
Packit Service 4684c1
GnuTLS 3.4.0. Internally GnuTLS uses the new AEAD API.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} @code{GNUTLS_E_SUCCESS}  on success, otherwise a negative error code.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.4.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_crypto_register_cipher
Packit Service 4684c1
@anchor{gnutls_crypto_register_cipher}
Packit Service 4684c1
@deftypefun {int} {gnutls_crypto_register_cipher} (gnutls_cipher_algorithm_t @var{algorithm}, int @var{priority}, gnutls_cipher_init_func @var{init}, gnutls_cipher_setkey_func @var{setkey}, gnutls_cipher_setiv_func @var{setiv}, gnutls_cipher_encrypt_func @var{encrypt}, gnutls_cipher_decrypt_func @var{decrypt}, gnutls_cipher_deinit_func @var{deinit})
Packit Service 4684c1
@var{algorithm}: is the gnutls algorithm identifier
Packit Service 4684c1
Packit Service 4684c1
@var{priority}: is the priority of the algorithm
Packit Service 4684c1
Packit Service 4684c1
@var{init}: A function which initializes the cipher
Packit Service 4684c1
Packit Service 4684c1
@var{setkey}: A function which sets the key of the cipher
Packit Service 4684c1
Packit Service 4684c1
@var{setiv}: A function which sets the nonce/IV of the cipher (non-AEAD)
Packit Service 4684c1
Packit Service 4684c1
@var{encrypt}: A function which performs encryption (non-AEAD)
Packit Service 4684c1
Packit Service 4684c1
@var{decrypt}: A function which performs decryption (non-AEAD)
Packit Service 4684c1
Packit Service 4684c1
@var{deinit}: A function which deinitializes the cipher
Packit Service 4684c1
Packit Service 4684c1
This function will register a cipher algorithm to be used by
Packit Service 4684c1
gnutls.  Any algorithm registered will override the included
Packit Service 4684c1
algorithms and by convention kernel implemented algorithms have
Packit Service 4684c1
priority of 90 and CPU-assisted of 80.  The algorithm with the lowest priority will be
Packit Service 4684c1
used by gnutls.
Packit Service 4684c1
Packit Service 4684c1
In the case the registered init or setkey functions return @code{GNUTLS_E_NEED_FALLBACK} ,
Packit Service 4684c1
GnuTLS will attempt to use the next in priority registered cipher.
Packit Service 4684c1
Packit Service 4684c1
The functions which are marked as non-AEAD they are not required when
Packit Service 4684c1
registering a cipher to be used with the new AEAD API introduced in
Packit Service 4684c1
GnuTLS 3.4.0. Internally GnuTLS uses the new AEAD API.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} @code{GNUTLS_E_SUCCESS}  on success, otherwise a negative error code.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.4.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_crypto_register_digest
Packit Service 4684c1
@anchor{gnutls_crypto_register_digest}
Packit Service 4684c1
@deftypefun {int} {gnutls_crypto_register_digest} (gnutls_digest_algorithm_t @var{algorithm}, int @var{priority}, gnutls_digest_init_func @var{init}, gnutls_digest_hash_func @var{hash}, gnutls_digest_output_func @var{output}, gnutls_digest_deinit_func @var{deinit}, gnutls_digest_fast_func @var{hash_fast})
Packit Service 4684c1
@var{algorithm}: is the gnutls digest identifier
Packit Service 4684c1
Packit Service 4684c1
@var{priority}: is the priority of the algorithm
Packit Service 4684c1
Packit Service 4684c1
@var{init}: A function which initializes the digest
Packit Service 4684c1
Packit Service 4684c1
@var{hash}: Perform the hash operation
Packit Service 4684c1
Packit Service 4684c1
@var{output}: Provide the output of the digest
Packit Service 4684c1
Packit Service 4684c1
@var{deinit}: A function which deinitializes the digest
Packit Service 4684c1
Packit Service 4684c1
@var{hash_fast}: Perform the digest operation in one go
Packit Service 4684c1
Packit Service 4684c1
This function will register a digest algorithm to be used by gnutls.
Packit Service 4684c1
Any algorithm registered will override the included algorithms and
Packit Service 4684c1
by convention kernel implemented algorithms have priority of 90
Packit Service 4684c1
and CPU-assisted of 80.
Packit Service 4684c1
The algorithm with the lowest priority will be used by gnutls.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} @code{GNUTLS_E_SUCCESS}  on success, otherwise a negative error code.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.4.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_crypto_register_mac
Packit Service 4684c1
@anchor{gnutls_crypto_register_mac}
Packit Service 4684c1
@deftypefun {int} {gnutls_crypto_register_mac} (gnutls_mac_algorithm_t @var{algorithm}, int @var{priority}, gnutls_mac_init_func @var{init}, gnutls_mac_setkey_func @var{setkey}, gnutls_mac_setnonce_func @var{setnonce}, gnutls_mac_hash_func @var{hash}, gnutls_mac_output_func @var{output}, gnutls_mac_deinit_func @var{deinit}, gnutls_mac_fast_func @var{hash_fast})
Packit Service 4684c1
@var{algorithm}: is the gnutls MAC identifier
Packit Service 4684c1
Packit Service 4684c1
@var{priority}: is the priority of the algorithm
Packit Service 4684c1
Packit Service 4684c1
@var{init}: A function which initializes the MAC
Packit Service 4684c1
Packit Service 4684c1
@var{setkey}: A function which sets the key of the MAC
Packit Service 4684c1
Packit Service 4684c1
@var{setnonce}: A function which sets the nonce for the mac (may be @code{NULL}  for common MAC algorithms)
Packit Service 4684c1
Packit Service 4684c1
@var{hash}: Perform the hash operation
Packit Service 4684c1
Packit Service 4684c1
@var{output}: Provide the output of the MAC
Packit Service 4684c1
Packit Service 4684c1
@var{deinit}: A function which deinitializes the MAC
Packit Service 4684c1
Packit Service 4684c1
@var{hash_fast}: Perform the MAC operation in one go
Packit Service 4684c1
Packit Service 4684c1
This function will register a MAC algorithm to be used by gnutls.
Packit Service 4684c1
Any algorithm registered will override the included algorithms and
Packit Service 4684c1
by convention kernel implemented algorithms have priority of 90
Packit Service 4684c1
and CPU-assisted of 80.
Packit Service 4684c1
The algorithm with the lowest priority will be used by gnutls.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} @code{GNUTLS_E_SUCCESS}  on success, otherwise a negative error code.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.4.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_decode_ber_digest_info
Packit Service 4684c1
@anchor{gnutls_decode_ber_digest_info}
Packit Service 4684c1
@deftypefun {int} {gnutls_decode_ber_digest_info} (const gnutls_datum_t * @var{info}, gnutls_digest_algorithm_t * @var{hash}, unsigned char * @var{digest}, unsigned int * @var{digest_size})
Packit Service 4684c1
@var{info}: an RSA BER encoded DigestInfo structure
Packit Service 4684c1
Packit Service 4684c1
@var{hash}: will contain the hash algorithm of the structure
Packit Service 4684c1
Packit Service 4684c1
@var{digest}: will contain the hash output of the structure
Packit Service 4684c1
Packit Service 4684c1
@var{digest_size}: will contain the hash size of the structure; initially must hold the maximum size of  @code{digest} 
Packit Service 4684c1
Packit Service 4684c1
This function will parse an RSA PKCS@code{1}  1.5 DigestInfo structure
Packit Service 4684c1
and report the hash algorithm used as well as the digest data.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise
Packit Service 4684c1
an error code is returned.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.5.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_decode_gost_rs_value
Packit Service 4684c1
@anchor{gnutls_decode_gost_rs_value}
Packit Service 4684c1
@deftypefun {int} {gnutls_decode_gost_rs_value} (const gnutls_datum_t * @var{sig_value}, gnutls_datum_t * @var{r}, gnutls_datum_t * @var{s})
Packit Service 4684c1
@var{sig_value}: will holds a GOST signature according to RFC 4491 section 2.2.2
Packit Service 4684c1
Packit Service 4684c1
@var{r}: will contain the r value
Packit Service 4684c1
Packit Service 4684c1
@var{s}: will contain the s value
Packit Service 4684c1
Packit Service 4684c1
This function will decode the provided  @code{sig_value} , into  @code{r} and  @code{s} elements.
Packit Service 4684c1
See RFC 4491 section 2.2.2 for the format of signature value.
Packit Service 4684c1
Packit Service 4684c1
The output values may be padded with a zero byte to prevent them
Packit Service 4684c1
from being interpreted as negative values. The value
Packit Service 4684c1
should be deallocated using @code{gnutls_free()} .
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise
Packit Service 4684c1
an error code is returned.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_decode_rs_value
Packit Service 4684c1
@anchor{gnutls_decode_rs_value}
Packit Service 4684c1
@deftypefun {int} {gnutls_decode_rs_value} (const gnutls_datum_t * @var{sig_value}, gnutls_datum_t * @var{r}, gnutls_datum_t * @var{s})
Packit Service 4684c1
@var{sig_value}: holds a Dss-Sig-Value DER or BER encoded structure
Packit Service 4684c1
Packit Service 4684c1
@var{r}: will contain the r value
Packit Service 4684c1
Packit Service 4684c1
@var{s}: will contain the s value
Packit Service 4684c1
Packit Service 4684c1
This function will decode the provided  @code{sig_value} , 
Packit Service 4684c1
into  @code{r} and  @code{s} elements. The Dss-Sig-Value is used for DSA and ECDSA
Packit Service 4684c1
signatures.
Packit Service 4684c1
Packit Service 4684c1
The output values may be padded with a zero byte to prevent them
Packit Service 4684c1
from being interpreted as negative values. The value
Packit Service 4684c1
should be deallocated using @code{gnutls_free()} .
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise
Packit Service 4684c1
an error code is returned.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_encode_ber_digest_info
Packit Service 4684c1
@anchor{gnutls_encode_ber_digest_info}
Packit Service 4684c1
@deftypefun {int} {gnutls_encode_ber_digest_info} (gnutls_digest_algorithm_t @var{hash}, const gnutls_datum_t * @var{digest}, gnutls_datum_t * @var{output})
Packit Service 4684c1
@var{hash}: the hash algorithm that was used to get the digest
Packit Service 4684c1
Packit Service 4684c1
@var{digest}: must contain the digest data
Packit Service 4684c1
Packit Service 4684c1
@var{output}: will contain the allocated DigestInfo BER encoded data
Packit Service 4684c1
Packit Service 4684c1
This function will encode the provided digest data, and its
Packit Service 4684c1
algorithm into an RSA PKCS@code{1}  1.5 DigestInfo structure. 
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise
Packit Service 4684c1
an error code is returned.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.5.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_encode_gost_rs_value
Packit Service 4684c1
@anchor{gnutls_encode_gost_rs_value}
Packit Service 4684c1
@deftypefun {int} {gnutls_encode_gost_rs_value} (gnutls_datum_t * @var{sig_value}, const gnutls_datum_t * @var{r}, const gnutls_datum_t  * @var{s})
Packit Service 4684c1
@var{sig_value}: will hold a GOST signature according to RFC 4491 section 2.2.2
Packit Service 4684c1
Packit Service 4684c1
@var{r}: must contain the r value
Packit Service 4684c1
Packit Service 4684c1
@var{s}: must contain the s value
Packit Service 4684c1
Packit Service 4684c1
This function will encode the provided r and s values, into binary
Packit Service 4684c1
representation according to RFC 4491 section 2.2.2, used for GOST R
Packit Service 4684c1
34.10-2001 (and thus also for GOST R 34.10-2012) signatures.
Packit Service 4684c1
Packit Service 4684c1
The output value should be deallocated using @code{gnutls_free()} .
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise
Packit Service 4684c1
an error code is returned.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_encode_rs_value
Packit Service 4684c1
@anchor{gnutls_encode_rs_value}
Packit Service 4684c1
@deftypefun {int} {gnutls_encode_rs_value} (gnutls_datum_t * @var{sig_value}, const gnutls_datum_t * @var{r}, const gnutls_datum_t * @var{s})
Packit Service 4684c1
@var{sig_value}: will hold a Dss-Sig-Value DER encoded structure
Packit Service 4684c1
Packit Service 4684c1
@var{r}: must contain the r value
Packit Service 4684c1
Packit Service 4684c1
@var{s}: must contain the s value
Packit Service 4684c1
Packit Service 4684c1
This function will encode the provided r and s values, 
Packit Service 4684c1
into a Dss-Sig-Value structure, used for DSA and ECDSA
Packit Service 4684c1
signatures.
Packit Service 4684c1
Packit Service 4684c1
The output value should be deallocated using @code{gnutls_free()} .
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS}  (0) is returned, otherwise
Packit Service 4684c1
an error code is returned.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hash
Packit Service 4684c1
@anchor{gnutls_hash}
Packit Service 4684c1
@deftypefun {int} {gnutls_hash} (gnutls_hash_hd_t @var{handle}, const void * @var{ptext}, size_t @var{ptext_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_hash_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the data to hash
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_len}: the length of data to hash
Packit Service 4684c1
Packit Service 4684c1
This function will hash the given data using the algorithm
Packit Service 4684c1
specified by the context.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hash_copy
Packit Service 4684c1
@anchor{gnutls_hash_copy}
Packit Service 4684c1
@deftypefun {gnutls_hash_hd_t} {gnutls_hash_copy} (gnutls_hash_hd_t @var{handle})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_hash_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
This function will create a copy of Message Digest context, containing all
Packit Service 4684c1
its current state. Copying contexts for Message Digests registered using
Packit Service 4684c1
@code{gnutls_crypto_register_digest()}  is not supported and will always result in
Packit Service 4684c1
an error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} new Message Digest context or NULL in case of an error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.9
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hash_deinit
Packit Service 4684c1
@anchor{gnutls_hash_deinit}
Packit Service 4684c1
@deftypefun {void} {gnutls_hash_deinit} (gnutls_hash_hd_t @var{handle}, void * @var{digest})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_hash_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{digest}: is the output value of the hash
Packit Service 4684c1
Packit Service 4684c1
This function will deinitialize all resources occupied by
Packit Service 4684c1
the given hash context.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hash_fast
Packit Service 4684c1
@anchor{gnutls_hash_fast}
Packit Service 4684c1
@deftypefun {int} {gnutls_hash_fast} (gnutls_digest_algorithm_t @var{algorithm}, const void * @var{ptext}, size_t @var{ptext_len}, void * @var{digest})
Packit Service 4684c1
@var{algorithm}: the hash algorithm to use
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the data to hash
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_len}: the length of data to hash
Packit Service 4684c1
Packit Service 4684c1
@var{digest}: is the output value of the hash
Packit Service 4684c1
Packit Service 4684c1
This convenience function will hash the given data and return output
Packit Service 4684c1
on a single call.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hash_get_len
Packit Service 4684c1
@anchor{gnutls_hash_get_len}
Packit Service 4684c1
@deftypefun {unsigned} {gnutls_hash_get_len} (gnutls_digest_algorithm_t @var{algorithm})
Packit Service 4684c1
@var{algorithm}: the hash algorithm to use
Packit Service 4684c1
Packit Service 4684c1
This function will return the length of the output data
Packit Service 4684c1
of the given hash algorithm.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} The length or zero on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hash_init
Packit Service 4684c1
@anchor{gnutls_hash_init}
Packit Service 4684c1
@deftypefun {int} {gnutls_hash_init} (gnutls_hash_hd_t * @var{dig}, gnutls_digest_algorithm_t @var{algorithm})
Packit Service 4684c1
@var{dig}: is a @code{gnutls_hash_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{algorithm}: the hash algorithm to use
Packit Service 4684c1
Packit Service 4684c1
This function will initialize an context that can be used to
Packit Service 4684c1
produce a Message Digest of data.  This will effectively use the
Packit Service 4684c1
current crypto backend in use by gnutls or the cryptographic
Packit Service 4684c1
accelerator in use.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hash_output
Packit Service 4684c1
@anchor{gnutls_hash_output}
Packit Service 4684c1
@deftypefun {void} {gnutls_hash_output} (gnutls_hash_hd_t @var{handle}, void * @var{digest})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_hash_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{digest}: is the output value of the hash
Packit Service 4684c1
Packit Service 4684c1
This function will output the current hash value
Packit Service 4684c1
and reset the state of the hash.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hkdf_expand
Packit Service 4684c1
@anchor{gnutls_hkdf_expand}
Packit Service 4684c1
@deftypefun {int} {gnutls_hkdf_expand} (gnutls_mac_algorithm_t @var{mac}, const gnutls_datum_t * @var{key}, const gnutls_datum_t * @var{info}, void * @var{output}, size_t @var{length})
Packit Service 4684c1
@var{mac}: the mac algorithm used internally
Packit Service 4684c1
Packit Service 4684c1
@var{key}: the pseudorandom key created with HKDF-Extract
Packit Service 4684c1
Packit Service 4684c1
@var{info}: the optional informational data
Packit Service 4684c1
Packit Service 4684c1
@var{output}: the output value of the expand operation
Packit Service 4684c1
Packit Service 4684c1
@var{length}: the desired length of the output key
Packit Service 4684c1
Packit Service 4684c1
This function will derive a variable length keying material from
Packit Service 4684c1
the pseudorandom key using the HKDF-Expand function as defined in
Packit Service 4684c1
RFC 5869.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.13
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hkdf_extract
Packit Service 4684c1
@anchor{gnutls_hkdf_extract}
Packit Service 4684c1
@deftypefun {int} {gnutls_hkdf_extract} (gnutls_mac_algorithm_t @var{mac}, const gnutls_datum_t * @var{key}, const gnutls_datum_t * @var{salt}, void * @var{output})
Packit Service 4684c1
@var{mac}: the mac algorithm used internally
Packit Service 4684c1
Packit Service 4684c1
@var{key}: the initial keying material
Packit Service 4684c1
Packit Service 4684c1
@var{salt}: the optional salt
Packit Service 4684c1
Packit Service 4684c1
@var{output}: the output value of the extract operation
Packit Service 4684c1
Packit Service 4684c1
This function will derive a fixed-size key using the HKDF-Extract
Packit Service 4684c1
function as defined in RFC 5869.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.13
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hmac
Packit Service 4684c1
@anchor{gnutls_hmac}
Packit Service 4684c1
@deftypefun {int} {gnutls_hmac} (gnutls_hmac_hd_t @var{handle}, const void * @var{ptext}, size_t @var{ptext_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_hmac_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the data to hash
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_len}: the length of data to hash
Packit Service 4684c1
Packit Service 4684c1
This function will hash the given data using the algorithm
Packit Service 4684c1
specified by the context.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hmac_copy
Packit Service 4684c1
@anchor{gnutls_hmac_copy}
Packit Service 4684c1
@deftypefun {gnutls_hmac_hd_t} {gnutls_hmac_copy} (gnutls_hmac_hd_t @var{handle})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_hmac_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
This function will create a copy of MAC context, containing all its current
Packit Service 4684c1
state. Copying contexts for MACs registered using
Packit Service 4684c1
@code{gnutls_crypto_register_mac()}  is not supported and will always result in an
Packit Service 4684c1
error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} new MAC context or NULL in case of an error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.9
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hmac_deinit
Packit Service 4684c1
@anchor{gnutls_hmac_deinit}
Packit Service 4684c1
@deftypefun {void} {gnutls_hmac_deinit} (gnutls_hmac_hd_t @var{handle}, void * @var{digest})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_hmac_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{digest}: is the output value of the MAC
Packit Service 4684c1
Packit Service 4684c1
This function will deinitialize all resources occupied by
Packit Service 4684c1
the given hmac context.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hmac_fast
Packit Service 4684c1
@anchor{gnutls_hmac_fast}
Packit Service 4684c1
@deftypefun {int} {gnutls_hmac_fast} (gnutls_mac_algorithm_t @var{algorithm}, const void * @var{key}, size_t @var{keylen}, const void * @var{ptext}, size_t @var{ptext_len}, void * @var{digest})
Packit Service 4684c1
@var{algorithm}: the hash algorithm to use
Packit Service 4684c1
Packit Service 4684c1
@var{key}: the key to use
Packit Service 4684c1
Packit Service 4684c1
@var{keylen}: the length of the key
Packit Service 4684c1
Packit Service 4684c1
@var{ptext}: the data to hash
Packit Service 4684c1
Packit Service 4684c1
@var{ptext_len}: the length of data to hash
Packit Service 4684c1
Packit Service 4684c1
@var{digest}: is the output value of the hash
Packit Service 4684c1
Packit Service 4684c1
This convenience function will hash the given data and return output
Packit Service 4684c1
on a single call. Note, this call will not work for MAC algorithms
Packit Service 4684c1
that require nonce (like UMAC or GMAC).
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hmac_get_key_size
Packit Service 4684c1
@anchor{gnutls_hmac_get_key_size}
Packit Service 4684c1
@deftypefun {unsigned} {gnutls_hmac_get_key_size} (gnutls_mac_algorithm_t @var{algorithm})
Packit Service 4684c1
@var{algorithm}: the mac algorithm to use
Packit Service 4684c1
Packit Service 4684c1
This function will return the size of the key to be used with this
Packit Service 4684c1
algorithm. On the algorithms which may accept arbitrary key sizes,
Packit Service 4684c1
the returned size is the MAC key size used in the TLS protocol.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} The key size or zero on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.12
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hmac_get_len
Packit Service 4684c1
@anchor{gnutls_hmac_get_len}
Packit Service 4684c1
@deftypefun {unsigned} {gnutls_hmac_get_len} (gnutls_mac_algorithm_t @var{algorithm})
Packit Service 4684c1
@var{algorithm}: the hmac algorithm to use
Packit Service 4684c1
Packit Service 4684c1
This function will return the length of the output data
Packit Service 4684c1
of the given hmac algorithm.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} The length or zero on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hmac_init
Packit Service 4684c1
@anchor{gnutls_hmac_init}
Packit Service 4684c1
@deftypefun {int} {gnutls_hmac_init} (gnutls_hmac_hd_t * @var{dig}, gnutls_mac_algorithm_t @var{algorithm}, const void * @var{key}, size_t @var{keylen})
Packit Service 4684c1
@var{dig}: is a @code{gnutls_hmac_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{algorithm}: the HMAC algorithm to use
Packit Service 4684c1
Packit Service 4684c1
@var{key}: the key to be used for encryption
Packit Service 4684c1
Packit Service 4684c1
@var{keylen}: the length of the key
Packit Service 4684c1
Packit Service 4684c1
This function will initialize an context that can be used to
Packit Service 4684c1
produce a Message Authentication Code (MAC) of data.  This will
Packit Service 4684c1
effectively use the current crypto backend in use by gnutls or the
Packit Service 4684c1
cryptographic accelerator in use.
Packit Service 4684c1
Packit Service 4684c1
Note that despite the name of this function, it can be used
Packit Service 4684c1
for other MAC algorithms than HMAC.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hmac_output
Packit Service 4684c1
@anchor{gnutls_hmac_output}
Packit Service 4684c1
@deftypefun {void} {gnutls_hmac_output} (gnutls_hmac_hd_t @var{handle}, void * @var{digest})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_hmac_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{digest}: is the output value of the MAC
Packit Service 4684c1
Packit Service 4684c1
This function will output the current MAC value
Packit Service 4684c1
and reset the state of the MAC.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.10.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_hmac_set_nonce
Packit Service 4684c1
@anchor{gnutls_hmac_set_nonce}
Packit Service 4684c1
@deftypefun {void} {gnutls_hmac_set_nonce} (gnutls_hmac_hd_t @var{handle}, const void * @var{nonce}, size_t @var{nonce_len})
Packit Service 4684c1
@var{handle}: is a @code{gnutls_hmac_hd_t}  type
Packit Service 4684c1
Packit Service 4684c1
@var{nonce}: the data to set as nonce
Packit Service 4684c1
Packit Service 4684c1
@var{nonce_len}: the length of data
Packit Service 4684c1
Packit Service 4684c1
This function will set the nonce in the MAC algorithm.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.2.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_mac_get_nonce_size
Packit Service 4684c1
@anchor{gnutls_mac_get_nonce_size}
Packit Service 4684c1
@deftypefun {size_t} {gnutls_mac_get_nonce_size} (gnutls_mac_algorithm_t @var{algorithm})
Packit Service 4684c1
@var{algorithm}: is an encryption algorithm
Packit Service 4684c1
Packit Service 4684c1
Returns the size of the nonce used by the MAC in TLS.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} length (in bytes) of the given MAC nonce size, or 0.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.2.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_pbkdf2
Packit Service 4684c1
@anchor{gnutls_pbkdf2}
Packit Service 4684c1
@deftypefun {int} {gnutls_pbkdf2} (gnutls_mac_algorithm_t @var{mac}, const gnutls_datum_t * @var{key}, const gnutls_datum_t * @var{salt}, unsigned @var{iter_count}, void * @var{output}, size_t @var{length})
Packit Service 4684c1
@var{mac}: the mac algorithm used internally
Packit Service 4684c1
Packit Service 4684c1
@var{key}: the initial keying material
Packit Service 4684c1
Packit Service 4684c1
@var{salt}: the salt
Packit Service 4684c1
Packit Service 4684c1
@var{iter_count}: the iteration count
Packit Service 4684c1
Packit Service 4684c1
@var{output}: the output value
Packit Service 4684c1
Packit Service 4684c1
@var{length}: the desired length of the output key
Packit Service 4684c1
Packit Service 4684c1
This function will derive a variable length keying material from
Packit Service 4684c1
a password according to PKCS @code{5}  PBKDF2.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.6.13
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_rnd
Packit Service 4684c1
@anchor{gnutls_rnd}
Packit Service 4684c1
@deftypefun {int} {gnutls_rnd} (gnutls_rnd_level_t @var{level}, void * @var{data}, size_t @var{len})
Packit Service 4684c1
@var{level}: a security level
Packit Service 4684c1
Packit Service 4684c1
@var{data}: place to store random bytes
Packit Service 4684c1
Packit Service 4684c1
@var{len}: The requested size
Packit Service 4684c1
Packit Service 4684c1
This function will generate random data and store it to output
Packit Service 4684c1
buffer. The value of  @code{level} should be one of @code{GNUTLS_RND_NONCE} ,
Packit Service 4684c1
@code{GNUTLS_RND_RANDOM}  and @code{GNUTLS_RND_KEY} . See the manual and
Packit Service 4684c1
@code{gnutls_rnd_level_t}  for detailed information.
Packit Service 4684c1
Packit Service 4684c1
This function is thread-safe and also fork-safe.
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} Zero on success, or a negative error code on error.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 2.12.0
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1
Packit Service 4684c1
@subheading gnutls_rnd_refresh
Packit Service 4684c1
@anchor{gnutls_rnd_refresh}
Packit Service 4684c1
@deftypefun {void} {gnutls_rnd_refresh} ( @var{void})
Packit Service 4684c1
Packit Service 4684c1
This function refreshes the random generator state.
Packit Service 4684c1
That is the current precise time, CPU usage, and
Packit Service 4684c1
other values are input into its state.
Packit Service 4684c1
Packit Service 4684c1
On a slower rate input from /dev/urandom is mixed too.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.1.7
Packit Service 4684c1
@end deftypefun
Packit Service 4684c1