ecdsa.h
Go to the documentation of this file.00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 #ifndef HEADER_ECDSA_H
00060 #define HEADER_ECDSA_H
00061
00062 #include <openssl/opensslconf.h>
00063
00064 #ifdef OPENSSL_NO_ECDSA
00065 #error ECDSA is disabled.
00066 #endif
00067
00068 #include <openssl/ec.h>
00069 #include <openssl/ossl_typ.h>
00070 #ifndef OPENSSL_NO_DEPRECATED
00071 #include <openssl/bn.h>
00072 #endif
00073
00074 #ifdef __cplusplus
00075 extern "C" {
00076 #endif
00077
00078 typedef struct ECDSA_SIG_st
00079 {
00080 BIGNUM *r;
00081 BIGNUM *s;
00082 } ECDSA_SIG;
00083
00088 ECDSA_SIG *ECDSA_SIG_new(void);
00089
00094 void ECDSA_SIG_free(ECDSA_SIG *a);
00095
00103 int i2d_ECDSA_SIG(const ECDSA_SIG *a, unsigned char **pp);
00104
00113 ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **v, const unsigned char **pp, long len);
00114
00123 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst,int dgst_len,EC_KEY *eckey);
00124
00136 ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen,
00137 const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey);
00138
00148 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
00149 const ECDSA_SIG *sig, EC_KEY* eckey);
00150
00151 const ECDSA_METHOD *ECDSA_OpenSSL(void);
00152
00157 void ECDSA_set_default_method(const ECDSA_METHOD *meth);
00158
00163 const ECDSA_METHOD *ECDSA_get_default_method(void);
00164
00171 int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth);
00172
00178 int ECDSA_size(const EC_KEY *eckey);
00179
00188 int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv,
00189 BIGNUM **rp);
00190
00202 int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen,
00203 unsigned char *sig, unsigned int *siglen, EC_KEY *eckey);
00204
00205
00220 int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen,
00221 unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv,
00222 const BIGNUM *rp, EC_KEY *eckey);
00223
00235 int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen,
00236 const unsigned char *sig, int siglen, EC_KEY *eckey);
00237
00238
00239 int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new
00240 *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
00241 int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg);
00242 void *ECDSA_get_ex_data(EC_KEY *d, int idx);
00243
00244
00245
00246
00247
00248
00249 void ERR_load_ECDSA_strings(void);
00250
00251
00252
00253
00254 #define ECDSA_F_ECDSA_DATA_NEW_METHOD 100
00255 #define ECDSA_F_ECDSA_DO_SIGN 101
00256 #define ECDSA_F_ECDSA_DO_VERIFY 102
00257 #define ECDSA_F_ECDSA_SIGN_SETUP 103
00258
00259
00260 #define ECDSA_R_BAD_SIGNATURE 100
00261 #define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 101
00262 #define ECDSA_R_ERR_EC_LIB 102
00263 #define ECDSA_R_MISSING_PARAMETERS 103
00264 #define ECDSA_R_NEED_NEW_SETUP_VALUES 106
00265 #define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED 104
00266 #define ECDSA_R_SIGNATURE_MALLOC_FAILED 105
00267
00268 #ifdef __cplusplus
00269 }
00270 #endif
00271 #endif