| 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_digest_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 (*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 (*copy) (void **dst_ctx,void *src_ctx); 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 *signature,const gnutls_pk_params_st *pub); int (*generate) (gnutls_pk_algorithm_t Param1,unsigned int nbits,gnutls_pk_params_st *Param3); 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 value 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 value 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 value 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 value on error. |
Since 2.10.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 value on error. |
Since 2.10.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_digest_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 value 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 value 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 value 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 value 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 value 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 value on error. |
Since 2.10.0
int (*setkey) (void *ctx,const void *key,size_t keysize);
|
|
|
|
|
|
Returns : |
int (*encrypt) (void *ctx,const void *plain,size_t plainsize,void *encr,size_t encrsize);
|
|
|
|
|
|
|
|
|
|
Returns : |
int (*decrypt) (void *ctx,const void *encr,size_t encrsize,void *plain,size_t plainsize);
|
|
|
|
|
|
|
|
|
|
Returns : |
int (*hash) (void *ctx,const void *text,size_t textsize);
|
|
|
|
|
|
Returns : |
int (*output) (void *src_ctx,void *digest,size_t digestsize);
|
|
|
|
|
|
Returns : |
typedef enum gnutls_rnd_level
{
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 value on error. |
typedef enum
{
GNUTLS_PK_FLAG_NONE = 0
} gnutls_pk_flag_t;
Enumeration of public-key flag.
int (*rnd) (void *ctx,int level,void *data,size_t datasize);
|
|
|
|
|
|
|
|
Returns : |
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);
|
|
|
|
|
|
|
|
Returns : |
bigint_t (*bigint_addm) (bigint_t w,const bigint_t a,const bigint_t b,const bigint_t m);
|
|
|
|
|
|
|
|
Returns : |
bigint_t (*bigint_subm) (bigint_t w,const bigint_t a,const bigint_t b,const bigint_t m);
|
|
|
|
|
|
|
|
Returns : |
bigint_t (*bigint_mulm) (bigint_t w,const bigint_t a,const bigint_t b,const bigint_t m);
|
|
|
|
|
|
|
|
Returns : |
bigint_t (*bigint_mul) (bigint_t w,const bigint_t a,const bigint_t b);
|
|
|
|
|
|
Returns : |
bigint_t (*bigint_add_ui) (bigint_t w,const bigint_t a,unsigned long b);
|
|
|
|
|
|
Returns : |
bigint_t (*bigint_sub_ui) (bigint_t w,const bigint_t a,unsigned long b);
|
|
|
|
|
|
Returns : |
bigint_t (*bigint_mul_ui) (bigint_t w,const bigint_t a,unsigned long b);
|
|
|
|
|
|
Returns : |
bigint_t (*bigint_div) (bigint_t q,const bigint_t a,const bigint_t b);
|
|
|
|
|
|
Returns : |
int (*bigint_generate_group) (gnutls_group_st *gg,unsigned int bits);
|
|
|
|
Returns : |
bigint_t (*bigint_scan) (const void *buf,size_t buf_size,gnutls_bigint_format_t format);
|
|
|
|
|
|
Returns : |
int (*bigint_print) (const bigint_t a,void *buf,size_t *buf_size,gnutls_bigint_format_t format);
|
|
|
|
|
|
|
|
Returns : |
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);
|
|
|
|
|
|
|
|
Returns : |
int (*verify) (gnutls_pk_algorithm_t Param1,const gnutls_datum_t *data,const gnutls_datum_t *signature,const gnutls_pk_params_st *pub);
|
|
|
|
|
|
|
|
Returns : |
int (*generate) (gnutls_pk_algorithm_t Param1,unsigned int nbits,gnutls_pk_params_st *Param3);
|
|
|
|
|
|
Returns : |
int (*pk_fixup_private_params) (gnutls_pk_algorithm_t Param1,gnutls_direction_t Param2,gnutls_pk_params_st *Param3);
|
|
|
|
|
|
Returns : |
int gnutls_crypto_single_cipher_register (gnutls_cipher_algorithm_t algorithm,int priority,const gnutls_crypto_single_cipher_st *s);
|
|
|
|
|
|
Returns : |
int gnutls_crypto_single_mac_register (gnutls_mac_algorithm_t algorithm,int priority,const gnutls_crypto_single_mac_st *s);
|
|
|
|
|
|
Returns : |
int gnutls_crypto_single_digest_register (gnutls_digest_algorithm_t algorithm,int priority,const gnutls_crypto_single_digest_st *s);
|
|
|
|
|
|
Returns : |
int gnutls_crypto_cipher_register (int priority,const gnutls_crypto_cipher_st *s);
|
|
|
|
Returns : |
int gnutls_crypto_mac_register (int priority,const gnutls_crypto_mac_st *s);
|
|
|
|
Returns : |
int gnutls_crypto_digest_register (int priority,const gnutls_crypto_digest_st *s);
|
|
|
|
Returns : |
int gnutls_crypto_rnd_register (int priority,const gnutls_crypto_rnd_st *s);
|
|
|
|
Returns : |
int gnutls_crypto_pk_register (int priority,const gnutls_crypto_pk_st *s);
|
|
|
|
Returns : |