crypto

crypto

Synopsis

int                 gnutls_cipher_add_auth              (gnutls_cipher_hd_t handle,
                                                         const void *text,
                                                         size_t text_size);
int                 gnutls_cipher_decrypt               (const gnutls_cipher_hd_t handle,
                                                         void *ciphertext,
                                                         size_t ciphertextlen);
int                 gnutls_cipher_decrypt2              (gnutls_cipher_hd_t handle,
                                                         const void *ciphertext,
                                                         size_t ciphertextlen,
                                                         void *text,
                                                         size_t textlen);
void                gnutls_cipher_deinit                (gnutls_cipher_hd_t handle);
int                 gnutls_cipher_encrypt               (const gnutls_cipher_hd_t handle,
                                                         void *text,
                                                         size_t textlen);
int                 gnutls_cipher_encrypt2              (gnutls_cipher_hd_t handle,
                                                         const void *text,
                                                         size_t textlen,
                                                         void *ciphertext,
                                                         size_t ciphertextlen);
int                 gnutls_cipher_get_block_size        (gnutls_cipher_algorithm_t algorithm);
typedef             gnutls_cipher_hd_t;
int                 gnutls_cipher_init                  (gnutls_cipher_hd_t *handle,
                                                         gnutls_cipher_algorithm_t cipher,
                                                         const gnutls_datum_t *key,
                                                         const gnutls_datum_t *iv);
void                gnutls_cipher_set_iv                (gnutls_cipher_hd_t handle,
                                                         void *iv,
                                                         size_t ivlen);
int                 gnutls_cipher_tag                   (gnutls_cipher_hd_t handle,
                                                         void *tag,
                                                         size_t tag_size);
int                 gnutls_hash                         (gnutls_hash_hd_t handle,
                                                         const void *text,
                                                         size_t textlen);
void                gnutls_hash_deinit                  (gnutls_hash_hd_t handle,
                                                         void *digest);
int                 gnutls_hash_fast                    (gnutls_digest_algorithm_t algorithm,
                                                         const void *text,
                                                         size_t textlen,
                                                         void *digest);
int                 gnutls_hash_get_len                 (gnutls_digest_algorithm_t algorithm);
typedef             gnutls_hash_hd_t;
int                 gnutls_hash_init                    (gnutls_hash_hd_t *dig,
                                                         gnutls_digest_algorithm_t algorithm);
void                gnutls_hash_output                  (gnutls_hash_hd_t handle,
                                                         void *digest);
int                 gnutls_hmac                         (gnutls_hmac_hd_t handle,
                                                         const void *text,
                                                         size_t textlen);
void                gnutls_hmac_deinit                  (gnutls_hmac_hd_t handle,
                                                         void *digest);
int                 gnutls_hmac_fast                    (gnutls_mac_algorithm_t algorithm,
                                                         const void *key,
                                                         size_t keylen,
                                                         const void *text,
                                                         size_t textlen,
                                                         void *digest);
int                 gnutls_hmac_get_len                 (gnutls_mac_algorithm_t algorithm);
typedef             gnutls_hmac_hd_t;
int                 gnutls_hmac_init                    (gnutls_hmac_hd_t *dig,
                                                         gnutls_mac_algorithm_t algorithm,
                                                         const void *key,
                                                         size_t keylen);
void                gnutls_hmac_output                  (gnutls_hmac_hd_t handle,
                                                         void *digest);
int                 gnutls_rnd                          (gnutls_rnd_level_t level,
                                                         void *data,
                                                         size_t len);
enum                gnutls_rnd_level_t;

Description

Details

gnutls_cipher_add_auth ()

int                 gnutls_cipher_add_auth              (gnutls_cipher_hd_t handle,
                                                         const void *text,
                                                         size_t text_size);

This function operates on authenticated encryption with associated data (AEAD) ciphers and authenticate the input data. This function can only be called once and before any encryption operations.

handle :

is a gnutls_cipher_hd_t structure.

text :

the data to be authenticated

text_size :

The length of the data

Returns :

Zero or a negative error code on error.

Since 3.0


gnutls_cipher_decrypt ()

int                 gnutls_cipher_decrypt               (const gnutls_cipher_hd_t handle,
                                                         void *ciphertext,
                                                         size_t ciphertextlen);

This function will decrypt the given data using the algorithm specified by the context.

handle :

is a gnutls_cipher_hd_t structure.

ciphertext :

the data to encrypt

ciphertextlen :

The length of data to encrypt

Returns :

Zero or a negative error code on error.

Since 2.10.0


gnutls_cipher_decrypt2 ()

int                 gnutls_cipher_decrypt2              (gnutls_cipher_hd_t handle,
                                                         const void *ciphertext,
                                                         size_t ciphertextlen,
                                                         void *text,
                                                         size_t textlen);

This function will decrypt the given data using the algorithm specified by the context.

handle :

is a gnutls_cipher_hd_t structure.

ciphertext :

the data to encrypt

ciphertextlen :

The length of data to encrypt

text :

the decrypted data

textlen :

The available length for decrypted data

Returns :

Zero or a negative error code on error.

Since 2.12.0


gnutls_cipher_deinit ()

void                gnutls_cipher_deinit                (gnutls_cipher_hd_t handle);

This function will deinitialize all resources occupied by the given encryption context.

handle :

is a gnutls_cipher_hd_t structure.

Since 2.10.0


gnutls_cipher_encrypt ()

int                 gnutls_cipher_encrypt               (const gnutls_cipher_hd_t handle,
                                                         void *text,
                                                         size_t textlen);

This function will encrypt the given data using the algorithm specified by the context.

handle :

is a gnutls_cipher_hd_t structure.

text :

the data to encrypt

textlen :

The length of data to encrypt

Returns :

Zero or a negative error code on error.

Since 2.10.0


gnutls_cipher_encrypt2 ()

int                 gnutls_cipher_encrypt2              (gnutls_cipher_hd_t handle,
                                                         const void *text,
                                                         size_t textlen,
                                                         void *ciphertext,
                                                         size_t ciphertextlen);

This function will encrypt the given data using the algorithm specified by the context.

handle :

is a gnutls_cipher_hd_t structure.

text :

the data to encrypt

textlen :

The length of data to encrypt

ciphertext :

the encrypted data

ciphertextlen :

The available length for encrypted data

Returns :

Zero or a negative error code on error.

Since 2.12.0


gnutls_cipher_get_block_size ()

int                 gnutls_cipher_get_block_size        (gnutls_cipher_algorithm_t algorithm);

Get block size for encryption algorithm.

algorithm :

is an encryption algorithm

Returns :

block size for encryption algorithm.

Since 2.10.0


gnutls_cipher_hd_t

  typedef struct api_cipher_hd_st *gnutls_cipher_hd_t;


gnutls_cipher_init ()

int                 gnutls_cipher_init                  (gnutls_cipher_hd_t *handle,
                                                         gnutls_cipher_algorithm_t cipher,
                                                         const gnutls_datum_t *key,
                                                         const gnutls_datum_t *iv);

This function will initialize an context that can be used for encryption/decryption of data. This will effectively use the current crypto backend in use by gnutls or the cryptographic accelerator in use.

handle :

is a gnutls_cipher_hd_t structure.

cipher :

the encryption algorithm to use

key :

The key to be used for encryption

iv :

The IV to use (if not applicable set NULL)

Returns :

Zero or a negative error code on error.

Since 2.10.0


gnutls_cipher_set_iv ()

void                gnutls_cipher_set_iv                (gnutls_cipher_hd_t handle,
                                                         void *iv,
                                                         size_t ivlen);

This function will set the IV to be used for the next encryption block.

handle :

is a gnutls_cipher_hd_t structure.

iv :

the IV to set

ivlen :

The length of the IV

Since 3.0


gnutls_cipher_tag ()

int                 gnutls_cipher_tag                   (gnutls_cipher_hd_t handle,
                                                         void *tag,
                                                         size_t tag_size);

This function operates on authenticated encryption with associated data (AEAD) ciphers and will return the output tag.

handle :

is a gnutls_cipher_hd_t structure.

tag :

will hold the tag

tag_size :

The length of the tag to return

Returns :

Zero or a negative error code on error.

Since 3.0


gnutls_hash ()

int                 gnutls_hash                         (gnutls_hash_hd_t handle,
                                                         const void *text,
                                                         size_t textlen);

This function will hash the given data using the algorithm specified by the context.

handle :

is a gnutls_cipher_hd_t structure.

text :

the data to hash

textlen :

The length of data to hash

Returns :

Zero or a negative error code on error.

Since 2.10.0


gnutls_hash_deinit ()

void                gnutls_hash_deinit                  (gnutls_hash_hd_t handle,
                                                         void *digest);

This function will deinitialize all resources occupied by the given hash context.

handle :

is a gnutls_hash_hd_t structure.

digest :

is the output value of the hash

Since 2.10.0


gnutls_hash_fast ()

int                 gnutls_hash_fast                    (gnutls_digest_algorithm_t algorithm,
                                                         const void *text,
                                                         size_t textlen,
                                                         void *digest);

This convenience function will hash the given data and return output on a single call.

algorithm :

the hash algorithm to use

text :

the data to hash

textlen :

The length of data to hash

digest :

is the output value of the hash

Returns :

Zero or a negative error code on error.

Since 2.10.0


gnutls_hash_get_len ()

int                 gnutls_hash_get_len                 (gnutls_digest_algorithm_t algorithm);

This function will return the length of the output data of the given hash algorithm.

algorithm :

the hash algorithm to use

Returns :

The length or zero on error.

Since 2.10.0


gnutls_hash_hd_t

  typedef struct hash_hd_st *gnutls_hash_hd_t;


gnutls_hash_init ()

int                 gnutls_hash_init                    (gnutls_hash_hd_t *dig,
                                                         gnutls_digest_algorithm_t algorithm);

This function will initialize an context that can be used to produce a Message Digest of data. This will effectively use the current crypto backend in use by gnutls or the cryptographic accelerator in use.

dig :

is a gnutls_hash_hd_t structure.

algorithm :

the hash algorithm to use

Returns :

Zero or a negative error code on error.

Since 2.10.0


gnutls_hash_output ()

void                gnutls_hash_output                  (gnutls_hash_hd_t handle,
                                                         void *digest);

This function will output the current hash value and reset the state of the hash.

handle :

is a gnutls_hash_hd_t structure.

digest :

is the output value of the hash

Since 2.10.0


gnutls_hmac ()

int                 gnutls_hmac                         (gnutls_hmac_hd_t handle,
                                                         const void *text,
                                                         size_t textlen);

This function will hash the given data using the algorithm specified by the context.

handle :

is a gnutls_cipher_hd_t structure.

text :

the data to hash

textlen :

The length of data to hash

Returns :

Zero or a negative error code on error.

Since 2.10.0


gnutls_hmac_deinit ()

void                gnutls_hmac_deinit                  (gnutls_hmac_hd_t handle,
                                                         void *digest);

This function will deinitialize all resources occupied by the given hmac context.

handle :

is a gnutls_hmac_hd_t structure.

digest :

is the output value of the MAC

Since 2.10.0


gnutls_hmac_fast ()

int                 gnutls_hmac_fast                    (gnutls_mac_algorithm_t algorithm,
                                                         const void *key,
                                                         size_t keylen,
                                                         const void *text,
                                                         size_t textlen,
                                                         void *digest);

This convenience function will hash the given data and return output on a single call.

algorithm :

the hash algorithm to use

key :

the key to use

keylen :

The length of the key

text :

the data to hash

textlen :

The length of data to hash

digest :

is the output value of the hash

Returns :

Zero or a negative error code on error.

Since 2.10.0


gnutls_hmac_get_len ()

int                 gnutls_hmac_get_len                 (gnutls_mac_algorithm_t algorithm);

This function will return the length of the output data of the given hmac algorithm.

algorithm :

the hmac algorithm to use

Returns :

The length or zero on error.

Since 2.10.0


gnutls_hmac_hd_t

  typedef struct hmac_hd_st *gnutls_hmac_hd_t;


gnutls_hmac_init ()

int                 gnutls_hmac_init                    (gnutls_hmac_hd_t *dig,
                                                         gnutls_mac_algorithm_t algorithm,
                                                         const void *key,
                                                         size_t keylen);

This function will initialize an context that can be used to produce a Message Authentication Code (MAC) of data. This will effectively use the current crypto backend in use by gnutls or the cryptographic accelerator in use.

dig :

is a gnutls_hmac_hd_t structure.

algorithm :

the HMAC algorithm to use

key :

The key to be used for encryption

keylen :

The length of the key

Returns :

Zero or a negative error code on error.

Since 2.10.0


gnutls_hmac_output ()

void                gnutls_hmac_output                  (gnutls_hmac_hd_t handle,
                                                         void *digest);

This function will output the current MAC value and reset the state of the MAC.

handle :

is a gnutls_hmac_hd_t structure.

digest :

is the output value of the MAC

Since 2.10.0


gnutls_rnd ()

int                 gnutls_rnd                          (gnutls_rnd_level_t level,
                                                         void *data,
                                                         size_t len);

This function will generate random data and store it to output buffer.

level :

a security level

data :

place to store random bytes

len :

The requested size

Returns :

Zero or a negative error code on error.

Since 2.12.0


enum gnutls_rnd_level_t

typedef enum {
    GNUTLS_RND_NONCE = 0,
    GNUTLS_RND_RANDOM = 1,
    GNUTLS_RND_KEY = 2
} gnutls_rnd_level_t;

Enumeration of random quality levels.

GNUTLS_RND_NONCE

Non-predictable random number. Fatal in parts of session if broken, i.e., vulnerable to statistical analysis.

GNUTLS_RND_RANDOM

Pseudo-random cryptographic random number. Fatal in session if broken.

GNUTLS_RND_KEY

Fatal in many sessions if broken.