crypto

crypto

Synopsis

#define             GNUTLS_CRYPTO_API_VERSION
int                 init                                (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);
typedef             gnutls_crypto_single_digest_st;
typedef             gnutls_crypto_digest_st;
enum                gnutls_rnd_level_t;
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_get_nbits                    (const bigint_t a);
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 ,
                                                         gnutls_datum_t *signature,
                                                         const gnutls_datum_t *data,
                                                         const gnutls_pk_params_st *);
int                 verify                              (gnutls_pk_algorithm_t ,
                                                         const gnutls_datum_t *data,
                                                         const gnutls_datum_t *signature,
                                                         const gnutls_pk_params_st *);
int                 generate                            (gnutls_pk_algorithm_t ,
                                                         unsigned int level,
                                                         gnutls_pk_params_st *);
int                 pk_fixup_private_params             (gnutls_pk_algorithm_t ,
                                                         gnutls_direction_t ,
                                                         gnutls_pk_params_st *);
#define             gnutls_crypto_single_cipher_register(algo, prio, st)
#define             gnutls_crypto_single_mac_register   (algo, prio, st)
#define             gnutls_crypto_single_digest_register(algo, prio, st)
int                 gnutls_crypto_single_cipher_register2
                                                        (gnutls_cipher_algorithm_t algorithm,
                                                         int priority,
                                                         int version,
                                                         gnutls_crypto_single_cipher_st *s);
int                 gnutls_crypto_single_mac_register2  (gnutls_mac_algorithm_t algorithm,
                                                         int priority,
                                                         int version,
                                                         gnutls_crypto_single_mac_st *s);
int                 gnutls_crypto_single_digest_register2
                                                        (gnutls_digest_algorithm_t algorithm,
                                                         int priority,
                                                         int version,
                                                         gnutls_crypto_single_digest_st *s);
#define             gnutls_crypto_cipher_register       (prio, st)
#define             gnutls_crypto_mac_register          (prio, st)
#define             gnutls_crypto_digest_register       (prio, st)
int                 gnutls_crypto_cipher_register2      (int priority,
                                                         int version,
                                                         gnutls_crypto_cipher_st *s);
int                 gnutls_crypto_mac_register2         (int priority,
                                                         int version,
                                                         gnutls_crypto_mac_st *s);
int                 gnutls_crypto_digest_register2      (int priority,
                                                         int version,
                                                         gnutls_crypto_digest_st *s);
#define             gnutls_crypto_rnd_register          (prio, st)
#define             gnutls_crypto_pk_register           (prio, st)
#define             gnutls_crypto_bigint_register       (prio, st)
int                 gnutls_crypto_rnd_register2         (int priority,
                                                         int version,
                                                         gnutls_crypto_rnd_st *s);
int                 gnutls_crypto_pk_register2          (int priority,
                                                         int version,
                                                         gnutls_crypto_pk_st *s);
int                 gnutls_crypto_bigint_register2      (int priority,
                                                         int version,
                                                         gnutls_crypto_bigint_st *s);

Description

Details

GNUTLS_CRYPTO_API_VERSION

# define GNUTLS_CRYPTO_API_VERSION 0x01

init ()

int                 init                                (void **ctx);

setkey ()

int                 setkey                              (void *ctx,
                                                         const void *key,
                                                         size_t keysize);

setiv ()

int                 setiv                               (void *ctx,
                                                         const void *iv,
                                                         size_t ivsize);

encrypt ()

int                 encrypt                             (void *ctx,
                                                         const void *plain,
                                                         size_t plainsize,
                                                         void *encr,
                                                         size_t encrsize);

decrypt ()

int                 decrypt                             (void *ctx,
                                                         const void *encr,
                                                         size_t encrsize,
                                                         void *plain,
                                                         size_t plainsize);

deinit ()

void                deinit                              (void *ctx);

hash ()

int                 hash                                (void *ctx,
                                                         const void *text,
                                                         size_t textsize);

copy ()

int                 copy                                (void **dst_ctx,
                                                         void *src_ctx);

output ()

int                 output                              (void *src_ctx,
                                                         void *digest,
                                                         size_t digestsize);

gnutls_crypto_single_digest_st

typedef gnutls_crypto_single_mac_st gnutls_crypto_single_digest_st;

gnutls_crypto_digest_st

typedef gnutls_crypto_mac_st gnutls_crypto_digest_st;

enum gnutls_rnd_level_t

typedef enum gnutls_rnd_level
{
  /* fatal in parts of session if broken, i.e., vulnerable to
     statistical analysis */
  GNUTLS_RND_NONCE = 0,
  /* fatal in session if broken */
  GNUTLS_RND_RANDOM = 1,
  /* fatal in many sessions if broken */
  GNUTLS_RND_KEY = 2
} gnutls_rnd_level_t;

enum gnutls_pk_flag_t

typedef enum
{
  GNUTLS_PK_FLAG_NONE = 0
} gnutls_pk_flag_t;

rnd ()

int                 rnd                                 (void *ctx,
                                                         int level,
                                                         void *data,
                                                         size_t datasize);

bigint_t

typedef void *bigint_t;

enum gnutls_bigint_format_t

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;

bigint_new ()

bigint_t            bigint_new                          (int nbits);

bigint_release ()

void                bigint_release                      (bigint_t n);

bigint_cmp ()

int                 bigint_cmp                          (const bigint_t m1,
                                                         const bigint_t m2);

bigint_cmp_ui ()

int                 bigint_cmp_ui                       (const bigint_t m1,
                                                         unsigned long  m2);

bigint_mod ()

bigint_t            bigint_mod                          (const bigint_t a,
                                                         const bigint_t b);

bigint_set ()

bigint_t            bigint_set                          (bigint_t a,
                                                         const bigint_t b);

bigint_set_ui ()

bigint_t            bigint_set_ui                       (bigint_t a,
                                                         unsigned long  b);

bigint_get_nbits ()

unsigned int        bigint_get_nbits                    (const bigint_t a);

bigint_powm ()

bigint_t            bigint_powm                         (bigint_t w,
                                                         const bigint_t b,
                                                         const bigint_t e,
                                                         const bigint_t m);

bigint_addm ()

bigint_t            bigint_addm                         (bigint_t w,
                                                         const bigint_t a,
                                                         const bigint_t b,
                                                         const bigint_t m);

bigint_subm ()

bigint_t            bigint_subm                         (bigint_t w,
                                                         const bigint_t a,
                                                         const bigint_t b,
                                                         const bigint_t m);

bigint_mulm ()

bigint_t            bigint_mulm                         (bigint_t w,
                                                         const bigint_t a,
                                                         const bigint_t b,
                                                         const bigint_t m);

bigint_mul ()

bigint_t            bigint_mul                          (bigint_t w,
                                                         const bigint_t a,
                                                         const bigint_t b);

bigint_add_ui ()

bigint_t            bigint_add_ui                       (bigint_t w,
                                                         const bigint_t a,
                                                         unsigned long  b);

bigint_sub_ui ()

bigint_t            bigint_sub_ui                       (bigint_t w,
                                                         const bigint_t a,
                                                         unsigned long  b);

bigint_mul_ui ()

bigint_t            bigint_mul_ui                       (bigint_t w,
                                                         const bigint_t a,
                                                         unsigned long  b);

bigint_div ()

bigint_t            bigint_div                          (bigint_t q,
                                                         const bigint_t a,
                                                         const bigint_t b);

bigint_prime_check ()

int                 bigint_prime_check                  (const bigint_t pp);

bigint_generate_group ()

int                 bigint_generate_group               (gnutls_group_st *gg,
                                                         unsigned int bits);

bigint_scan ()

bigint_t            bigint_scan                         (const void *buf,
                                                         size_t buf_size,
                                                         gnutls_bigint_format_t format);

bigint_print ()

int                 bigint_print                        (const bigint_t a,
                                                         void *buf,
                                                         size_t *buf_size,
                                                         gnutls_bigint_format_t format);

GNUTLS_MAX_PK_PARAMS

#define GNUTLS_MAX_PK_PARAMS 6

gnutls_pk_params_release ()

void                gnutls_pk_params_release            (gnutls_pk_params_st *p);

gnutls_pk_params_init ()

void                gnutls_pk_params_init               (gnutls_pk_params_st *p);

enum gnutls_direction_t

typedef enum
{
  GNUTLS_IMPORT,
  GNUTLS_EXPORT
} gnutls_direction_t;

sign ()

int                 sign                                (gnutls_pk_algorithm_t ,
                                                         gnutls_datum_t *signature,
                                                         const gnutls_datum_t *data,
                                                         const gnutls_pk_params_st *);

verify ()

int                 verify                              (gnutls_pk_algorithm_t ,
                                                         const gnutls_datum_t *data,
                                                         const gnutls_datum_t *signature,
                                                         const gnutls_pk_params_st *);

generate ()

int                 generate                            (gnutls_pk_algorithm_t ,
                                                         unsigned int level,
                                                         gnutls_pk_params_st *);

pk_fixup_private_params ()

int                 pk_fixup_private_params             (gnutls_pk_algorithm_t ,
                                                         gnutls_direction_t ,
                                                         gnutls_pk_params_st *);

gnutls_crypto_single_cipher_register()

#define             gnutls_crypto_single_cipher_register(algo, prio, st)

gnutls_crypto_single_mac_register()

#define             gnutls_crypto_single_mac_register(algo, prio, st)

gnutls_crypto_single_digest_register()

#define             gnutls_crypto_single_digest_register(algo, prio, st)

gnutls_crypto_single_cipher_register2 ()

int                 gnutls_crypto_single_cipher_register2
                                                        (gnutls_cipher_algorithm_t algorithm,
                                                         int priority,
                                                         int version,
                                                         gnutls_crypto_single_cipher_st *s);

Since 2.6.0


gnutls_crypto_single_mac_register2 ()

int                 gnutls_crypto_single_mac_register2  (gnutls_mac_algorithm_t algorithm,
                                                         int priority,
                                                         int version,
                                                         gnutls_crypto_single_mac_st *s);

Since 2.6.0


gnutls_crypto_single_digest_register2 ()

int                 gnutls_crypto_single_digest_register2
                                                        (gnutls_digest_algorithm_t algorithm,
                                                         int priority,
                                                         int version,
                                                         gnutls_crypto_single_digest_st *s);

Since 2.6.0


gnutls_crypto_cipher_register()

#define             gnutls_crypto_cipher_register(prio, st)

gnutls_crypto_mac_register()

#define             gnutls_crypto_mac_register(prio, st)

gnutls_crypto_digest_register()

#define             gnutls_crypto_digest_register(prio, st)

gnutls_crypto_cipher_register2 ()

int                 gnutls_crypto_cipher_register2      (int priority,
                                                         int version,
                                                         gnutls_crypto_cipher_st *s);

Since 2.6.0


gnutls_crypto_mac_register2 ()

int                 gnutls_crypto_mac_register2         (int priority,
                                                         int version,
                                                         gnutls_crypto_mac_st *s);

Since 2.6.0


gnutls_crypto_digest_register2 ()

int                 gnutls_crypto_digest_register2      (int priority,
                                                         int version,
                                                         gnutls_crypto_digest_st *s);

Since 2.6.0


gnutls_crypto_rnd_register()

#define             gnutls_crypto_rnd_register(prio, st)

gnutls_crypto_pk_register()

#define             gnutls_crypto_pk_register(prio, st)

gnutls_crypto_bigint_register()

#define             gnutls_crypto_bigint_register(prio, st)

gnutls_crypto_rnd_register2 ()

int                 gnutls_crypto_rnd_register2         (int priority,
                                                         int version,
                                                         gnutls_crypto_rnd_st *s);

Since 2.6.0


gnutls_crypto_pk_register2 ()

int                 gnutls_crypto_pk_register2          (int priority,
                                                         int version,
                                                         gnutls_crypto_pk_st *s);

Since 2.6.0


gnutls_crypto_bigint_register2 ()

int                 gnutls_crypto_bigint_register2      (int priority,
                                                         int version,
                                                         gnutls_crypto_bigint_st *s);

Since 2.6.0