59 #ifndef HEADER_ECDSA_H
60 # define HEADER_ECDSA_H
62 # include <openssl/opensslconf.h>
64 # ifdef OPENSSL_NO_ECDSA
65 # error ECDSA is disabled.
68 # include <openssl/ec.h>
69 # include <openssl/ossl_typ.h>
70 # ifndef OPENSSL_NO_DEPRECATED
71 # include <openssl/bn.h>
99 int i2d_ECDSA_SIG(
const ECDSA_SIG *sig,
unsigned char **pp);
117 ECDSA_SIG *ECDSA_do_sign(
const unsigned char *dgst,
int dgst_len,
130 ECDSA_SIG *ECDSA_do_sign_ex(
const unsigned char *dgst,
int dgstlen,
143 int ECDSA_do_verify(
const unsigned char *dgst,
int dgst_len,
146 const ECDSA_METHOD *ECDSA_OpenSSL(
void);
151 void ECDSA_set_default_method(
const ECDSA_METHOD *meth);
156 const ECDSA_METHOD *ECDSA_get_default_method(
void);
163 int ECDSA_set_method(EC_KEY *eckey,
const ECDSA_METHOD *meth);
169 int ECDSA_size(
const EC_KEY *eckey);
178 int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx,
BIGNUM **kinv,
BIGNUM **rp);
190 int ECDSA_sign(
int type,
const unsigned char *dgst,
int dgstlen,
191 unsigned char *sig,
unsigned int *siglen, EC_KEY *eckey);
206 int ECDSA_sign_ex(
int type,
const unsigned char *dgst,
int dgstlen,
207 unsigned char *sig,
unsigned int *siglen,
221 int ECDSA_verify(
int type,
const unsigned char *dgst,
int dgstlen,
222 const unsigned char *sig,
int siglen, EC_KEY *eckey);
225 int ECDSA_get_ex_new_index(
long argl,
void *argp, CRYPTO_EX_new
226 *new_func, CRYPTO_EX_dup *dup_func,
227 CRYPTO_EX_free *free_func);
228 int ECDSA_set_ex_data(EC_KEY *d,
int idx,
void *arg);
229 void *ECDSA_get_ex_data(EC_KEY *d,
int idx);
236 ECDSA_METHOD *ECDSA_METHOD_new(
const ECDSA_METHOD *ecdsa_method);
241 void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method);
248 void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method,
void *app);
255 void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method);
262 void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method,
263 ECDSA_SIG *(*ecdsa_do_sign) (
const unsigned char
274 void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method,
275 int (*ecdsa_sign_setup) (EC_KEY *eckey,
285 void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method,
286 int (*ecdsa_do_verify) (
const unsigned char
291 void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method,
int flags);
298 void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method,
char *name);
310 void ERR_load_ECDSA_strings(
void);
315 # define ECDSA_F_ECDSA_CHECK 104
316 # define ECDSA_F_ECDSA_DATA_NEW_METHOD 100
317 # define ECDSA_F_ECDSA_DO_SIGN 101
318 # define ECDSA_F_ECDSA_DO_VERIFY 102
319 # define ECDSA_F_ECDSA_METHOD_NEW 105
320 # define ECDSA_F_ECDSA_SIGN_SETUP 103
323 # define ECDSA_R_BAD_SIGNATURE 100
324 # define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 101
325 # define ECDSA_R_ERR_EC_LIB 102
326 # define ECDSA_R_MISSING_PARAMETERS 103
327 # define ECDSA_R_NEED_NEW_SETUP_VALUES 106
328 # define ECDSA_R_NON_FIPS_METHOD 107
329 # define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED 104
330 # define ECDSA_R_SIGNATURE_MALLOC_FAILED 105