11#if !defined(MBEDTLS_CONFIG_FILE)
14#include MBEDTLS_CONFIG_FILE
22#define MBEDTLS_ERR_DSA_BAD_INPUT_DATA -0x3180
23#define MBEDTLS_ERR_DSA_INVALID_KEY -0x3200
24#define MBEDTLS_ERR_DSA_VERIFY_FAILED -0x3280
25#define MBEDTLS_ERR_DSA_ALLOC_FAILED -0x3300
26#define MBEDTLS_ERR_DSA_RANDOM_FAILED -0x3380
27#define MBEDTLS_ERR_DSA_FILE_IO_ERROR -0x3400
28#define MBEDTLS_ERR_DSA_SIG_LEN_MISMATCH -0x3480
30#define MBEDTLS_DSA_ASN_SIGNATURE_MAX_LEN 64
33#define MBEDTLS_DSA_MAX_GROUP 64
36#define MBEDTLS_DSA_MAX_MODULUS 1024
94 int (*f_rng)(
void *,
unsigned char *,
size_t),
void *p_rng );
148 const unsigned char *
hash,
size_t hlen,
149 unsigned char *sig,
size_t *slen,
150 int (*f_rng)(
void *,
unsigned char *,
size_t),
165 const unsigned char *
hash,
size_t hlen,
166 const unsigned char *sig,
size_t slen );
168#if defined(MBEDTLS_SELF_TEST)
176int mbedtls_dsa_self_test(
int verbose );
Multi-precision integer library.
#define G(r, i, a, b, c, d)
int mbedtls_dsa_set_group(mbedtls_dsa_context *ctx, const mbedtls_mpi *P, const mbedtls_mpi *Q, const mbedtls_mpi *G)
This function sets the DSA group parameters.
int mbedtls_dsa_pubkey_from_privkey(mbedtls_dsa_context *ctx)
This function derived public key from private key.
int mbedtls_dsa_verify(mbedtls_dsa_context *ctx, const unsigned char *hash, size_t hlen, const unsigned char *sig, size_t slen)
This function reads and verifies a DSA signature.
int mbedtls_dsa_check_pubkey(const mbedtls_dsa_context *ctx)
This function checks if the public key is valid.
int mbedtls_dsa_sign(mbedtls_dsa_context *ctx, const unsigned char *hash, size_t hlen, unsigned char *sig, size_t *slen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)
This function computes the DSA signature of a message hash.
void mbedtls_dsa_init(mbedtls_dsa_context *ctx)
This function initializes a DSA context.
int mbedtls_dsa_check_privkey(const mbedtls_dsa_context *ctx)
This function checks if the private key is valid.
int mbedtls_dsa_genkey(mbedtls_dsa_context *ctx, size_t group_size, size_t modulus_size, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)
This function generates a DSA keypair.
int mbedtls_dsa_check_pqg(const mbedtls_mpi *P, const mbedtls_mpi *Q, const mbedtls_mpi *G)
This function checks if the DSA group parameters are valid.
void mbedtls_dsa_free(mbedtls_dsa_context *ctx)
This function frees a DSA context.
This file contains the generic message-digest wrapper.