GnuTLS API Reference Manual | ||||
---|---|---|---|---|
Top | Description |
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
); int gnutls_cipher_encrypt (const gnutls_cipher_hd_t handle
,void *text
,size_t textlen
); 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
); int gnutls_cipher_encrypt2 (gnutls_cipher_hd_t handle
,const void *text
,size_t textlen
,void *ciphertext
,size_t ciphertextlen
); void gnutls_cipher_deinit (gnutls_cipher_hd_t handle
); int gnutls_cipher_get_block_size (gnutls_cipher_algorithm_t algorithm
); typedef gnutls_hash_hd_t; 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
); int gnutls_hmac (gnutls_hmac_hd_t handle
,const void *text
,size_t textlen
); void gnutls_hmac_output (gnutls_hmac_hd_t handle
,void *digest
); void gnutls_hmac_deinit (gnutls_hmac_hd_t handle
,void *digest
); int gnutls_hmac_get_len (gnutls_mac_algorithm_t algorithm
); 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_hash_init (gnutls_hash_hd_t *dig
,gnutls_digest_algorithm_t algorithm
); int gnutls_hash (gnutls_hash_hd_t handle
,const void *text
,size_t textlen
); void gnutls_hash_output (gnutls_hash_hd_t handle
,void *digest
); void gnutls_hash_deinit (gnutls_hash_hd_t handle
,void *digest
); int gnutls_hash_get_len (gnutls_digest_algorithm_t algorithm
); int gnutls_hash_fast (gnutls_digest_algorithm_t algorithm
,const void *text
,size_t textlen
,void *digest
); #define gnutls_crypto_single_cipher_st #define gnutls_crypto_single_mac_st #define gnutls_crypto_single_digest_st int (*init) (gnutls_cipher_algorithm_t Param1
,void **ctx
,int enc
); int (*setkey) (void *ctx
,const void *key
,size_t keysize
); int (*setiv) (void *ctx
,const void *iv
,size_t ivsize
); int (*encrypt) (void *ctx
,const void *plain
,size_t plainsize
,void *encr
,size_t encrsize
); int (*decrypt) (void *ctx
,const void *encr
,size_t encrsize
,void *plain
,size_t plainsize
); void (*deinit) (void *ctx
); int (*hash) (void *ctx
,const void *text
,size_t textsize
); int (*output) (void *src_ctx
,void *digest
,size_t digestsize
); enum gnutls_rnd_level_t; int gnutls_rnd (gnutls_rnd_level_t level
,void *data
,size_t len
); enum gnutls_pk_flag_t; int (*rnd) (void *ctx
,int level
,void *data
,size_t datasize
); typedef bigint_t; enum gnutls_bigint_format_t; bigint_t (*bigint_new) (int nbits
); void (*bigint_release) (bigint_t n
); int (*bigint_cmp) (const bigint_t m1
,const bigint_t m2
); int (*bigint_cmp_ui) (const bigint_t m1
,unsigned long m2
); bigint_t (*bigint_mod) (const bigint_t a
,const bigint_t b
); bigint_t (*bigint_set) (bigint_t a
,const bigint_t b
); bigint_t (*bigint_set_ui) (bigint_t a
,unsigned long b
); unsigned int (); bigint_t (*bigint_powm) (bigint_t w
,const bigint_t b
,const bigint_t e
,const bigint_t m
); bigint_t (*bigint_addm) (bigint_t w
,const bigint_t a
,const bigint_t b
,const bigint_t m
); bigint_t (*bigint_subm) (bigint_t w
,const bigint_t a
,const bigint_t b
,const bigint_t m
); bigint_t (*bigint_mulm) (bigint_t w
,const bigint_t a
,const bigint_t b
,const bigint_t m
); bigint_t (*bigint_mul) (bigint_t w
,const bigint_t a
,const bigint_t b
); bigint_t (*bigint_add_ui) (bigint_t w
,const bigint_t a
,unsigned long b
); bigint_t (*bigint_sub_ui) (bigint_t w
,const bigint_t a
,unsigned long b
); bigint_t (*bigint_mul_ui) (bigint_t w
,const bigint_t a
,unsigned long b
); bigint_t (*bigint_div) (bigint_t q
,const bigint_t a
,const bigint_t b
); int (*bigint_prime_check) (const bigint_t pp
); int (*bigint_generate_group) (gnutls_group_st *gg
,unsigned int bits
); bigint_t (*bigint_scan) (const void *buf
,size_t buf_size
,gnutls_bigint_format_t format
); int (*bigint_print) (const bigint_t a
,void *buf
,size_t *buf_size
,gnutls_bigint_format_t format
); #define GNUTLS_MAX_PK_PARAMS void gnutls_pk_params_release (gnutls_pk_params_st *p
); void gnutls_pk_params_init (gnutls_pk_params_st *p
); enum gnutls_direction_t; int (*sign) (gnutls_pk_algorithm_t Param1
,gnutls_datum_t *signature
,const gnutls_datum_t *data
,const gnutls_pk_params_st *priv
); int (*verify) (gnutls_pk_algorithm_t Param1
,const gnutls_datum_t *data
,const gnutls_datum_t *sig
,const gnutls_pk_params_st *pub
); void generate (unsigned int bits
); int (*pk_fixup_private_params) (gnutls_pk_algorithm_t Param1
,gnutls_direction_t Param2
,gnutls_pk_params_st *Param3
); int gnutls_crypto_single_cipher_register (gnutls_cipher_algorithm_t algorithm
,int priority
,const gnutls_crypto_single_cipher_st *s
); int gnutls_crypto_single_mac_register (gnutls_mac_algorithm_t algorithm
,int priority
,const gnutls_crypto_single_mac_st *s
); int gnutls_crypto_single_digest_register (gnutls_digest_algorithm_t algorithm
,int priority
,const gnutls_crypto_single_digest_st *s
); int gnutls_crypto_cipher_register (int priority
,const gnutls_crypto_cipher_st *s
); int gnutls_crypto_mac_register (int priority
,const gnutls_crypto_mac_st *s
); int gnutls_crypto_digest_register (int priority
,const gnutls_crypto_digest_st *s
); int gnutls_crypto_rnd_register (int priority
,const gnutls_crypto_rnd_st *s
); int gnutls_crypto_pk_register (int priority
,const gnutls_crypto_pk_st *s
); int gnutls_crypto_bigint_register (int priority
,const gnutls_crypto_bigint_st *s
);
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.
|
is a gnutls_cipher_hd_t structure. |
|
the encryption algorithm to use |
|
The key to be used for encryption |
|
The IV to use (if not applicable set NULL) |
Returns : |
Zero or a negative error code on error. |
Since 2.10.0
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.
|
is a gnutls_cipher_hd_t structure. |
|
the data to encrypt |
|
The length of data to encrypt |
Returns : |
Zero or a negative error code on error. |
Since 2.10.0
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.
|
is a gnutls_cipher_hd_t structure. |
|
the data to encrypt |
|
The length of data to encrypt |
Returns : |
Zero or a negative error code on error. |
Since 2.10.0
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.
|
is a gnutls_cipher_hd_t structure. |
|
the data to encrypt |
|
The length of data to encrypt |
|
the decrypted data |
|
The available length for decrypted data |
Returns : |
Zero or a negative error code on error. |
Since 2.12.0
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.
|
is a gnutls_cipher_hd_t structure. |
|
the data to encrypt |
|
The length of data to encrypt |
|
the encrypted data |
|
The available length for encrypted data |
Returns : |
Zero or a negative error code on error. |
Since 2.12.0
void gnutls_cipher_deinit (gnutls_cipher_hd_t handle
);
This function will deinitialize all resources occupied by the given encryption context.
|
is a gnutls_cipher_hd_t structure. |
Since 2.10.0
int gnutls_cipher_get_block_size (gnutls_cipher_algorithm_t algorithm
);
Get block size for encryption algorithm.
|
is an encryption algorithm |
Returns : |
block size for encryption algorithm. |
Since 2.10.0
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.
|
is a gnutls_hmac_hd_t structure. |
|
the HMAC algorithm to use |
|
The key to be used for encryption |
|
The length of the key |
Returns : |
Zero or a negative error code on error. |
Since 2.10.0
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.
|
is a gnutls_cipher_hd_t structure. |
|
the data to hash |
|
The length of data to hash |
Returns : |
Zero or a negative error code on error. |
Since 2.10.0
void gnutls_hmac_output (gnutls_hmac_hd_t handle
,void *digest
);
This function will output the current MAC value.
|
is a gnutls_hmac_hd_t structure. |
|
is the output value of the MAC |
Since 2.10.0
void gnutls_hmac_deinit (gnutls_hmac_hd_t handle
,void *digest
);
This function will deinitialize all resources occupied by the given hmac context.
|
is a gnutls_hmac_hd_t structure. |
|
is the output value of the MAC |
Since 2.10.0
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.
|
the hmac algorithm to use |
Returns : |
The length or zero on error. |
Since 2.10.0
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.
|
the hash algorithm to use |
|
the key to use |
|
The length of the key |
|
the data to hash |
|
The length of data to hash |
|
is the output value of the hash |
Returns : |
Zero or a negative error code on error. |
Since 2.10.0
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.
|
is a gnutls_hash_hd_t structure. |
|
the hash algorithm to use |
Returns : |
Zero or a negative error code on error. |
Since 2.10.0
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.
|
is a gnutls_cipher_hd_t structure. |
|
the data to hash |
|
The length of data to hash |
Returns : |
Zero or a negative error code on error. |
Since 2.10.0
void gnutls_hash_output (gnutls_hash_hd_t handle
,void *digest
);
This function will output the current hash value.
|
is a gnutls_hash_hd_t structure. |
|
is the output value of the hash |
Since 2.10.0
void gnutls_hash_deinit (gnutls_hash_hd_t handle
,void *digest
);
This function will deinitialize all resources occupied by the given hash context.
|
is a gnutls_hash_hd_t structure. |
|
is the output value of the hash |
Since 2.10.0
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.
|
the hash algorithm to use |
Returns : |
The length or zero on error. |
Since 2.10.0
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.
|
the hash algorithm to use |
|
the data to hash |
|
The length of data to hash |
|
is the output value of the hash |
Returns : |
Zero or a negative error code on error. |
Since 2.10.0
int (*encrypt) (void *ctx
,const void *plain
,size_t plainsize
,void *encr
,size_t encrsize
);
int (*decrypt) (void *ctx
,const void *encr
,size_t encrsize
,void *plain
,size_t plainsize
);
typedef enum { GNUTLS_RND_NONCE = 0, GNUTLS_RND_RANDOM = 1, GNUTLS_RND_KEY = 2 } gnutls_rnd_level_t;
Enumeration of random quality levels.
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.
|
a security level |
|
place to store random bytes |
|
The requested size |
Returns : |
Zero or a negative error code on error. |
Since 2.12.0
typedef enum { GNUTLS_PK_FLAG_NONE = 0 } gnutls_pk_flag_t;
Enumeration of public-key flag.
typedef enum { /* raw unsigned integer format */ GNUTLS_MPI_FORMAT_USG = 0, /* raw signed integer format - always a leading zero when positive */ GNUTLS_MPI_FORMAT_STD = 1, /* the pgp integer format */ GNUTLS_MPI_FORMAT_PGP = 2 } gnutls_bigint_format_t;
Enumeration of different bignum integer encoding formats.
bigint_t (*bigint_powm) (bigint_t w
,const bigint_t b
,const bigint_t e
,const bigint_t m
);
bigint_t (*bigint_addm) (bigint_t w
,const bigint_t a
,const bigint_t b
,const bigint_t m
);
bigint_t (*bigint_subm) (bigint_t w
,const bigint_t a
,const bigint_t b
,const bigint_t m
);
bigint_t (*bigint_mulm) (bigint_t w
,const bigint_t a
,const bigint_t b
,const bigint_t m
);
bigint_t (*bigint_scan) (const void *buf
,size_t buf_size
,gnutls_bigint_format_t format
);
int (*bigint_print) (const bigint_t a
,void *buf
,size_t *buf_size
,gnutls_bigint_format_t format
);
typedef enum { GNUTLS_IMPORT = 0, GNUTLS_EXPORT = 1 } gnutls_direction_t;
Enumeration of different directions.
int (*sign) (gnutls_pk_algorithm_t Param1
,gnutls_datum_t *signature
,const gnutls_datum_t *data
,const gnutls_pk_params_st *priv
);
int (*verify) (gnutls_pk_algorithm_t Param1
,const gnutls_datum_t *data
,const gnutls_datum_t *sig
,const gnutls_pk_params_st *pub
);
int (*pk_fixup_private_params) (gnutls_pk_algorithm_t Param1
,gnutls_direction_t Param2
,gnutls_pk_params_st *Param3
);
int gnutls_crypto_single_cipher_register (gnutls_cipher_algorithm_t algorithm
,int priority
,const gnutls_crypto_single_cipher_st *s
);
int gnutls_crypto_single_mac_register (gnutls_mac_algorithm_t algorithm
,int priority
,const gnutls_crypto_single_mac_st *s
);
int gnutls_crypto_single_digest_register (gnutls_digest_algorithm_t algorithm
,int priority
,const gnutls_crypto_single_digest_st *s
);
int gnutls_crypto_cipher_register (int priority
,const gnutls_crypto_cipher_st *s
);
int gnutls_crypto_mac_register (int priority
,const gnutls_crypto_mac_st *s
);
int gnutls_crypto_digest_register (int priority
,const gnutls_crypto_digest_st *s
);
int gnutls_crypto_rnd_register (int priority
,const gnutls_crypto_rnd_st *s
);
int gnutls_crypto_pk_register (int priority
,const gnutls_crypto_pk_st *s
);