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
41typedef struct
42{
48}
50
51#ifdef __cplusplus
52extern "C" {
53#endif
54
70int 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)
90int 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
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)
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
210
217
224
230int ecdsa_self_test( int verbose );
231
232#ifdef __cplusplus
233}
234#endif
235
236#endif /* ecdsa.h */
int ecdsa_from_keypair(ecdsa_context *ctx, const ecp_keypair *key)
Set an ECDSA context from an EC key pair.
int ecdsa_sign(ecp_group *grp, mpi *r, mpi *s, const mpi *d, const unsigned char *buf, size_t blen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)
Compute ECDSA signature of a previously hashed message.
int ecdsa_read_signature(ecdsa_context *ctx, const unsigned char *hash, size_t hlen, const unsigned char *sig, size_t slen)
Read and verify an ECDSA signature.
void ecdsa_init(ecdsa_context *ctx)
Initialize context.
int ecdsa_write_signature(ecdsa_context *ctx, const unsigned char *hash, size_t hlen, unsigned char *sig, size_t *slen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)
Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20.
int ecdsa_verify(ecp_group *grp, const unsigned char *buf, size_t blen, const ecp_point *Q, const mpi *r, const mpi *s)
Verify ECDSA signature of a previously hashed message.
void ecdsa_free(ecdsa_context *ctx)
Free context.
int ecdsa_genkey(ecdsa_context *ctx, ecp_group_id gid, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)
Generate an ECDSA keypair on the given curve.
int ecdsa_write_signature_det(ecdsa_context *ctx, const unsigned char *hash, size_t hlen, unsigned char *sig, size_t *slen, md_type_t md_alg)
Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20.
int ecdsa_self_test(int verbose)
Checkup routine.
int ecdsa_sign_det(ecp_group *grp, mpi *r, mpi *s, const mpi *d, const unsigned char *buf, size_t blen, md_type_t md_alg)
Compute ECDSA signature of a previously hashed message (deterministic version)
Elliptic curves over GF(p)
ecp_group_id
Domain parameters (curve, subgroup and generator) identifiers.
Definition ecp.h:58
Generic message digest wrapper.
md_type_t
Definition md.h:51
ECDSA context structure.
Definition ecdsa.h:42
ecp_point Q
Definition ecdsa.h:45
ecp_group grp
Definition ecdsa.h:43
ECP group structure.
Definition ecp.h:137
ECP key pair structure.
Definition ecp.h:164
ECP point structure (jacobian coordinates)
Definition ecp.h:105
MPI structure.
Definition bignum.h:183