/* dsa.h for openSSL */ #ifndef WOLFSSL_DSA_H_ #define WOLFSSL_DSA_H_ #include #include #ifdef __cplusplus extern "C" { #endif struct WOLFSSL_DSA { WOLFSSL_BIGNUM* p; WOLFSSL_BIGNUM* q; WOLFSSL_BIGNUM* g; WOLFSSL_BIGNUM* pub_key; /* our y */ WOLFSSL_BIGNUM* priv_key; /* our x */ void* internal; /* our Dsa Key */ char inSet; /* internal set from external ? */ char exSet; /* external set from internal ? */ }; WOLFSSL_API WOLFSSL_DSA* wolfSSL_DSA_new(void); WOLFSSL_API void wolfSSL_DSA_free(WOLFSSL_DSA*); WOLFSSL_API int wolfSSL_DSA_generate_key(WOLFSSL_DSA*); WOLFSSL_API int wolfSSL_DSA_generate_parameters_ex(WOLFSSL_DSA*, int bits, unsigned char* seed, int seedLen, int* counterRet, unsigned long* hRet, void* cb); WOLFSSL_API int wolfSSL_DSA_LoadDer(WOLFSSL_DSA*, const unsigned char*, int sz); WOLFSSL_API int wolfSSL_DSA_do_sign(const unsigned char* d, unsigned char* sigRet, WOLFSSL_DSA* dsa); WOLFSSL_API int wolfSSL_DSA_do_verify(const unsigned char* d, unsigned char* sig, WOLFSSL_DSA* dsa, int *dsacheck); #define DSA_new wolfSSL_DSA_new #define DSA_free wolfSSL_DSA_free #define DSA_generate_key wolfSSL_DSA_generate_key #define DSA_generate_parameters_ex wolfSSL_DSA_generate_parameters_ex #ifdef __cplusplus } /* extern "C" */ #endif #endif /* header */