25 #ifndef WOLFSSL_DSA_H_ 26 #define WOLFSSL_DSA_H_ 34 typedef struct WOLFSSL_DSA_SIG {
39 #ifndef WOLFSSL_DSA_TYPE_DEFINED 41 #define WOLFSSL_DSA_TYPE_DEFINED 50 WOLFSSL_BIGNUM* pub_key;
51 WOLFSSL_BIGNUM* priv_key;
61 WOLFSSL_API
int wolfSSL_DSA_generate_key(
WOLFSSL_DSA*);
63 typedef void (*WOLFSSL_BN_CB)(
int i,
int j,
void* exArg);
64 WOLFSSL_API
WOLFSSL_DSA* wolfSSL_DSA_generate_parameters(
int bits,
65 unsigned char* seed,
int seedLen,
int* counterRet,
66 unsigned long* hRet, WOLFSSL_BN_CB cb,
void* CBArg);
67 WOLFSSL_API
int wolfSSL_DSA_generate_parameters_ex(
WOLFSSL_DSA*,
int bits,
68 unsigned char* seed,
int seedLen,
int* counterRet,
69 unsigned long* hRet,
void* cb);
71 WOLFSSL_API
int wolfSSL_DSA_LoadDer(
WOLFSSL_DSA*,
const unsigned char*,
int sz);
73 WOLFSSL_API
int wolfSSL_DSA_LoadDer_ex(
WOLFSSL_DSA*,
const unsigned char*,
76 WOLFSSL_API
int wolfSSL_DSA_do_sign(
const unsigned char* d,
79 WOLFSSL_API
int wolfSSL_DSA_do_verify(
const unsigned char* d,
83 WOLFSSL_API WOLFSSL_DSA_SIG* wolfSSL_DSA_SIG_new(
void);
84 WOLFSSL_API
void wolfSSL_DSA_SIG_free(WOLFSSL_DSA_SIG *sig);
85 WOLFSSL_API WOLFSSL_DSA_SIG* wolfSSL_DSA_do_sign_ex(
const unsigned char* digest,
87 WOLFSSL_API
int wolfSSL_DSA_do_verify_ex(
const unsigned char* digest,
int digest_len,
90 #define WOLFSSL_DSA_LOAD_PRIVATE 1 91 #define WOLFSSL_DSA_LOAD_PUBLIC 2 93 #define DSA_new wolfSSL_DSA_new 94 #define DSA_free wolfSSL_DSA_free 96 #define DSA_LoadDer wolfSSL_DSA_LoadDer 97 #define DSA_generate_key wolfSSL_DSA_generate_key 98 #define DSA_generate_parameters wolfSSL_DSA_generate_parameters 99 #define DSA_generate_parameters_ex wolfSSL_DSA_generate_parameters_ex 101 #define DSA_SIG_new wolfSSL_DSA_SIG_new 102 #define DSA_SIG_free wolfSSL_DSA_SIG_free 103 #define DSA_do_sign wolfSSL_DSA_do_sign_ex 104 #define DSA_do_verify wolfSSL_DSA_do_verify_ex 107 #define DSA_SIG WOLFSSL_DSA_SIG