PolarSSL v1.3.9
ecdsa.h
Go to the documentation of this file.
1 
27 #ifndef POLARSSL_ECDSA_H
28 #define POLARSSL_ECDSA_H
29 
30 #include "ecp.h"
31 
32 #if defined(POLARSSL_ECDSA_DETERMINISTIC)
33 #include "md.h"
34 #endif
35 
41 typedef struct
42 {
44  mpi d;
46  mpi r;
47  mpi s;
48 }
50 
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
54 
70 int ecdsa_sign( ecp_group *grp, mpi *r, mpi *s,
71  const mpi *d, const unsigned char *buf, size_t blen,
72  int (*f_rng)(void *, unsigned char *, size_t), void *p_rng );
73 
74 #if defined(POLARSSL_ECDSA_DETERMINISTIC)
75 
90 int ecdsa_sign_det( ecp_group *grp, mpi *r, mpi *s,
91  const mpi *d, const unsigned char *buf, size_t blen,
92  md_type_t md_alg );
93 #endif /* POLARSSL_ECDSA_DETERMINISTIC */
94 
109 int ecdsa_verify( ecp_group *grp,
110  const unsigned char *buf, size_t blen,
111  const ecp_point *Q, const mpi *r, const mpi *s);
112 
135  const unsigned char *hash, size_t hlen,
136  unsigned char *sig, size_t *slen,
137  int (*f_rng)(void *, unsigned char *, size_t),
138  void *p_rng );
139 
140 #if defined(POLARSSL_ECDSA_DETERMINISTIC)
141 
163  const unsigned char *hash, size_t hlen,
164  unsigned char *sig, size_t *slen,
165  md_type_t md_alg );
166 #endif /* POLARSSL_ECDSA_DETERMINISTIC */
167 
184  const unsigned char *hash, size_t hlen,
185  const unsigned char *sig, size_t slen );
186 
199  int (*f_rng)(void *, unsigned char *, size_t), void *p_rng );
200 
209 int ecdsa_from_keypair( ecdsa_context *ctx, const ecp_keypair *key );
210 
216 void ecdsa_init( ecdsa_context *ctx );
217 
223 void ecdsa_free( ecdsa_context *ctx );
224 
230 int ecdsa_self_test( int verbose );
231 
232 #ifdef __cplusplus
233 }
234 #endif
235 
236 #endif /* ecdsa.h */