ecdsa.h File Reference

#include <openssl/opensslconf.h>
#include <openssl/ec.h>
#include <openssl/ossl_typ.h>
#include <openssl/bn.h>

Go to the source code of this file.

Data Structures

struct  ECDSA_SIG_st

Defines

#define ECDSA_F_ECDSA_DATA_NEW_METHOD   100
#define ECDSA_F_ECDSA_DO_SIGN   101
#define ECDSA_F_ECDSA_DO_VERIFY   102
#define ECDSA_F_ECDSA_SIGN_SETUP   103
#define ECDSA_R_BAD_SIGNATURE   100
#define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE   101
#define ECDSA_R_ERR_EC_LIB   102
#define ECDSA_R_MISSING_PARAMETERS   103
#define ECDSA_R_NEED_NEW_SETUP_VALUES   106
#define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED   104
#define ECDSA_R_SIGNATURE_MALLOC_FAILED   105

Typedefs

typedef struct ECDSA_SIG_st ECDSA_SIG

Functions

ECDSA_SIGECDSA_SIG_new (void)
 ECDSA_SIG *ECDSA_SIG_new(void) allocates and initialize a ECDSA_SIG structure.
void ECDSA_SIG_free (ECDSA_SIG *a)
 ECDSA_SIG_free frees a ECDSA_SIG structure.
int i2d_ECDSA_SIG (const ECDSA_SIG *a, unsigned char **pp)
 i2d_ECDSA_SIG DER encode content of ECDSA_SIG object (note: this function modifies *pp (*pp += length of the DER encoded signature)).
ECDSA_SIGd2i_ECDSA_SIG (ECDSA_SIG **v, const unsigned char **pp, long len)
 d2i_ECDSA_SIG decodes a DER encoded ECDSA signature (note: this function changes *pp (*pp += len)).
ECDSA_SIGECDSA_do_sign (const unsigned char *dgst, int dgst_len, EC_KEY *eckey)
 ECDSA_do_sign computes the ECDSA signature of the given hash value using the supplied private key and returns the created signature.
ECDSA_SIGECDSA_do_sign_ex (const unsigned char *dgst, int dgstlen, const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey)
 ECDSA_do_sign_ex computes ECDSA signature of a given hash value using the supplied private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
int ECDSA_do_verify (const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig, EC_KEY *eckey)
 ECDSA_do_verify verifies that the supplied signature is a valid ECDSA signature of the supplied hash value using the supplied public key.
const ECDSA_METHODECDSA_OpenSSL (void)
void ECDSA_set_default_method (const ECDSA_METHOD *meth)
 ECDSA_set_default_method sets the default ECDSA method.
const ECDSA_METHODECDSA_get_default_method (void)
 ECDSA_get_default_method returns the default ECDSA method.
int ECDSA_set_method (EC_KEY *eckey, const ECDSA_METHOD *meth)
 ECDSA_set_method sets method to be used for the ECDSA operations.
int ECDSA_size (const EC_KEY *eckey)
 ECDSA_size returns the maximum length of the DER encoded signature.
int ECDSA_sign_setup (EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp)
 ECDSA_sign_setup precompute parts of the signing operation.
int ECDSA_sign (int type, const unsigned char *dgst, int dgstlen, unsigned char *sig, unsigned int *siglen, EC_KEY *eckey)
 ECDSA_sign computes ECDSA signature of a given hash value using the supplied private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
int ECDSA_sign_ex (int type, const unsigned char *dgst, int dgstlen, unsigned char *sig, unsigned int *siglen, const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey)
 ECDSA_sign_ex computes ECDSA signature of a given hash value using the supplied private key (note: sig must point to ECDSA_size(eckey) bytes of memory).
int ECDSA_verify (int type, const unsigned char *dgst, int dgstlen, const unsigned char *sig, int siglen, EC_KEY *eckey)
 ECDSA_verify verifies that the given signature is valid ECDSA signature of the supplied hash value using the specified public key.
int ECDSA_get_ex_new_index (long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
int ECDSA_set_ex_data (EC_KEY *d, int idx, void *arg)
void * ECDSA_get_ex_data (EC_KEY *d, int idx)
void ERR_load_ECDSA_strings (void)


Define Documentation

#define ECDSA_F_ECDSA_DATA_NEW_METHOD   100

Definition at line 254 of file ecdsa.h.

#define ECDSA_F_ECDSA_DO_SIGN   101

Definition at line 255 of file ecdsa.h.

#define ECDSA_F_ECDSA_DO_VERIFY   102

Definition at line 256 of file ecdsa.h.

#define ECDSA_F_ECDSA_SIGN_SETUP   103

Definition at line 257 of file ecdsa.h.

#define ECDSA_R_BAD_SIGNATURE   100

Definition at line 260 of file ecdsa.h.

#define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE   101

Definition at line 261 of file ecdsa.h.

#define ECDSA_R_ERR_EC_LIB   102

Definition at line 262 of file ecdsa.h.

#define ECDSA_R_MISSING_PARAMETERS   103

Definition at line 263 of file ecdsa.h.

#define ECDSA_R_NEED_NEW_SETUP_VALUES   106

Definition at line 264 of file ecdsa.h.

#define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED   104

Definition at line 265 of file ecdsa.h.

#define ECDSA_R_SIGNATURE_MALLOC_FAILED   105

Definition at line 266 of file ecdsa.h.


Typedef Documentation

typedef struct ECDSA_SIG_st ECDSA_SIG


Function Documentation

ECDSA_SIG* d2i_ECDSA_SIG ( ECDSA_SIG **  v,
const unsigned char **  pp,
long  len 
)

d2i_ECDSA_SIG decodes a DER encoded ECDSA signature (note: this function changes *pp (*pp += len)).

Parameters:
v pointer to ECDSA_SIG pointer (may be NULL)
pp buffer with the DER encoded signature
len bufferlength
Returns:
pointer to the decoded ECDSA_SIG structure (or NULL)

ECDSA_SIG* ECDSA_do_sign ( const unsigned char *  dgst,
int  dgst_len,
EC_KEY eckey 
)

ECDSA_do_sign computes the ECDSA signature of the given hash value using the supplied private key and returns the created signature.

Parameters:
dgst pointer to the hash value
dgst_len length of the hash value
eckey pointer to the EC_KEY object containing a private EC key
Returns:
pointer to a ECDSA_SIG structure or NULL

ECDSA_SIG* ECDSA_do_sign_ex ( const unsigned char *  dgst,
int  dgstlen,
const BIGNUM kinv,
const BIGNUM rp,
EC_KEY eckey 
)

ECDSA_do_sign_ex computes ECDSA signature of a given hash value using the supplied private key (note: sig must point to ECDSA_size(eckey) bytes of memory).

Parameters:
dgst pointer to the hash value to sign
dgstlen length of the hash value
kinv optional pointer to a pre-computed inverse k
rp optional pointer to the pre-computed rp value (see ECDSA_sign_setup
eckey pointer to the EC_KEY object containing a private EC key
Returns:
pointer to a ECDSA_SIG structure or NULL

int ECDSA_do_verify ( const unsigned char *  dgst,
int  dgst_len,
const ECDSA_SIG sig,
EC_KEY eckey 
)

ECDSA_do_verify verifies that the supplied signature is a valid ECDSA signature of the supplied hash value using the supplied public key.

Parameters:
dgst pointer to the hash value
dgst_len length of the hash value
sig pointer to the ECDSA_SIG structure
eckey pointer to the EC_KEY object containing a public EC key
Returns:
1 if the signature is valid, 0 if the signature is invalid and -1 on error

const ECDSA_METHOD* ECDSA_get_default_method ( void   ) 

ECDSA_get_default_method returns the default ECDSA method.

Returns:
pointer to ECDSA_METHOD structure containing the default method

void* ECDSA_get_ex_data ( EC_KEY d,
int  idx 
)

int ECDSA_get_ex_new_index ( long  argl,
void *  argp,
CRYPTO_EX_new new_func,
CRYPTO_EX_dup dup_func,
CRYPTO_EX_free free_func 
)

const ECDSA_METHOD* ECDSA_OpenSSL ( void   ) 

void ECDSA_set_default_method ( const ECDSA_METHOD meth  ) 

ECDSA_set_default_method sets the default ECDSA method.

Parameters:
meth the new default ECDSA_METHOD

int ECDSA_set_ex_data ( EC_KEY d,
int  idx,
void *  arg 
)

int ECDSA_set_method ( EC_KEY eckey,
const ECDSA_METHOD meth 
)

ECDSA_set_method sets method to be used for the ECDSA operations.

Parameters:
eckey pointer to the EC_KEY object
meth pointer to the new method
Returns:
1 on success and 0 otherwise

void ECDSA_SIG_free ( ECDSA_SIG a  ) 

ECDSA_SIG_free frees a ECDSA_SIG structure.

Parameters:
a pointer to the ECDSA_SIG structure

ECDSA_SIG* ECDSA_SIG_new ( void   ) 

ECDSA_SIG *ECDSA_SIG_new(void) allocates and initialize a ECDSA_SIG structure.

Returns:
pointer to a ECDSA_SIG structure or NULL if an error occurred

int ECDSA_sign ( int  type,
const unsigned char *  dgst,
int  dgstlen,
unsigned char *  sig,
unsigned int *  siglen,
EC_KEY eckey 
)

ECDSA_sign computes ECDSA signature of a given hash value using the supplied private key (note: sig must point to ECDSA_size(eckey) bytes of memory).

Parameters:
type this parameter is ignored
dgst pointer to the hash value to sign
dgstlen length of the hash value
sig buffer to hold the DER encoded signature
siglen pointer to the length of the returned signature
eckey pointer to the EC_KEY object containing a private EC key
Returns:
1 on success and 0 otherwise

int ECDSA_sign_ex ( int  type,
const unsigned char *  dgst,
int  dgstlen,
unsigned char *  sig,
unsigned int *  siglen,
const BIGNUM kinv,
const BIGNUM rp,
EC_KEY eckey 
)

ECDSA_sign_ex computes ECDSA signature of a given hash value using the supplied private key (note: sig must point to ECDSA_size(eckey) bytes of memory).

Parameters:
type this parameter is ignored
dgst pointer to the hash value to sign
dgstlen length of the hash value
sig buffer to hold the DER encoded signature
siglen pointer to the length of the returned signature
kinv optional pointer to a pre-computed inverse k
rp optional pointer to the pre-computed rp value (see ECDSA_sign_setup
eckey pointer to the EC_KEY object containing a private EC key
Returns:
1 on success and 0 otherwise

int ECDSA_sign_setup ( EC_KEY eckey,
BN_CTX ctx,
BIGNUM **  kinv,
BIGNUM **  rp 
)

ECDSA_sign_setup precompute parts of the signing operation.

Parameters:
eckey pointer to the EC_KEY object containing a private EC key
ctx pointer to a BN_CTX object (may be NULL)
kinv pointer to a BIGNUM pointer for the inverse of k
rp pointer to a BIGNUM pointer for x coordinate of k * generator
Returns:
1 on success and 0 otherwise

int ECDSA_size ( const EC_KEY eckey  ) 

ECDSA_size returns the maximum length of the DER encoded signature.

Parameters:
eckey pointer to a EC_KEY object
Returns:
numbers of bytes required for the DER encoded signature

int ECDSA_verify ( int  type,
const unsigned char *  dgst,
int  dgstlen,
const unsigned char *  sig,
int  siglen,
EC_KEY eckey 
)

ECDSA_verify verifies that the given signature is valid ECDSA signature of the supplied hash value using the specified public key.

Parameters:
type this parameter is ignored
dgst pointer to the hash value
dgstlen length of the hash value
sig pointer to the DER encoded signature
siglen length of the DER encoded signature
eckey pointer to the EC_KEY object containing a public EC key
Returns:
1 if the signature is valid, 0 if the signature is invalid and -1 on error

void ERR_load_ECDSA_strings ( void   ) 

int i2d_ECDSA_SIG ( const ECDSA_SIG a,
unsigned char **  pp 
)

i2d_ECDSA_SIG DER encode content of ECDSA_SIG object (note: this function modifies *pp (*pp += length of the DER encoded signature)).

Parameters:
a pointer to the ECDSA_SIG object
pp pointer to a unsigned char pointer for the output or NULL
Returns:
the length of the DER encoded ECDSA_SIG object or 0


Generated on Thu Aug 20 22:33:06 2009 for OpenXDAS by  doxygen 1.5.6