PolarSSL v1.3.1
|
Elliptic curve DSA. More...
#include "ecp.h"
Go to the source code of this file.
Data Structures | |
struct | ecdsa_context |
ECDSA context structure. More... | |
Functions | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
int | ecdsa_from_keypair (ecdsa_context *ctx, const ecp_keypair *key) |
Set an ECDSA context from an EC key pair. More... | |
void | ecdsa_init (ecdsa_context *ctx) |
Initialize context. More... | |
void | ecdsa_free (ecdsa_context *ctx) |
Free context. More... | |
int | ecdsa_self_test (int verbose) |
Checkup routine. More... | |
Elliptic curve DSA.
Copyright (C) 2006-2013, Brainspark B.V.
This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Definition in file ecdsa.h.
void ecdsa_free | ( | ecdsa_context * | ctx | ) |
Free context.
ctx | Context to free |
int ecdsa_from_keypair | ( | ecdsa_context * | ctx, |
const ecp_keypair * | key | ||
) |
Set an ECDSA context from an EC key pair.
ctx | ECDSA context to set |
key | EC key to use |
int ecdsa_genkey | ( | ecdsa_context * | ctx, |
ecp_group_id | gid, | ||
int(*)(void *, unsigned char *, size_t) | f_rng, | ||
void * | p_rng | ||
) |
Generate an ECDSA keypair on the given curve.
ctx | ECDSA context in which the keypair should be stored |
gid | Group (elliptic curve) to use. One of the various POLARSSL_ECP_DP_XXX macros depending on configuration. |
f_rng | RNG function |
p_rng | RNG parameter |
void ecdsa_init | ( | ecdsa_context * | ctx | ) |
Initialize context.
ctx | Context to initialize |
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.
ctx | ECDSA context |
hash | Message hash |
hlen | Size of hash |
sig | Signature to read and verify |
slen | Size of sig |
int ecdsa_self_test | ( | int | verbose | ) |
Checkup routine.
int ecdsa_sign | ( | ecp_group * | grp, |
mpi * | r, | ||
mpi * | s, | ||
const mpi * | d, | ||
const unsigned char * | buf, | ||
size_t | blen, | ||
int(*)(void *, unsigned char *, size_t) | f_rng, | ||
void * | p_rng | ||
) |
Compute ECDSA signature of a previously hashed message.
grp | ECP group |
r | First output integer |
s | Second output integer |
d | Private signing key |
buf | Message hash |
blen | Length of buf |
f_rng | RNG function |
p_rng | RNG parameter |
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.
grp | ECP group |
buf | Message hash |
blen | Length of buf |
Q | Public key to use for verification |
r | First integer of the signature |
s | Second integer of the signature |
int ecdsa_write_signature | ( | ecdsa_context * | ctx, |
const unsigned char * | hash, | ||
size_t | hlen, | ||
unsigned char * | sig, | ||
size_t * | slen, | ||
int(*)(void *, unsigned char *, size_t) | f_rng, | ||
void * | p_rng | ||
) |
Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20.
(Not thread-safe to use same context in multiple threads)
ctx | ECDSA context |
hash | Message hash |
hlen | Length of hash |
sig | Buffer that will hold the signature |
slen | Length of the signature written |
f_rng | RNG function |
p_rng | RNG parameter |