mbed TLS v2.3.0
|
Elliptic curve DSA. More...
Go to the source code of this file.
Macros | |
#define | MBEDTLS_ECDSA_MAX_LEN ( 3 + 2 * ( 3 + MBEDTLS_ECP_MAX_BYTES ) ) |
Maximum size of an ECDSA signature in bytes. More... | |
#define | MBEDTLS_DEPRECATED |
Typedefs | |
typedef mbedtls_ecp_keypair | mbedtls_ecdsa_context |
ECDSA context structure. More... | |
Functions | |
int | mbedtls_ecdsa_sign (mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s, const mbedtls_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 | mbedtls_ecdsa_sign_det (mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s, const mbedtls_mpi *d, const unsigned char *buf, size_t blen, mbedtls_md_type_t md_alg) |
Compute ECDSA signature of a previously hashed message, deterministic version (RFC 6979). More... | |
int | mbedtls_ecdsa_verify (mbedtls_ecp_group *grp, const unsigned char *buf, size_t blen, const mbedtls_ecp_point *Q, const mbedtls_mpi *r, const mbedtls_mpi *s) |
Verify ECDSA signature of a previously hashed message. More... | |
int | mbedtls_ecdsa_write_signature (mbedtls_ecdsa_context *ctx, mbedtls_md_type_t md_alg, 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 | mbedtls_ecdsa_write_signature_det (mbedtls_ecdsa_context *ctx, const unsigned char *hash, size_t hlen, unsigned char *sig, size_t *slen, mbedtls_md_type_t md_alg) MBEDTLS_DEPRECATED |
Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20. More... | |
int | mbedtls_ecdsa_read_signature (mbedtls_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 | mbedtls_ecdsa_genkey (mbedtls_ecdsa_context *ctx, mbedtls_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 | mbedtls_ecdsa_from_keypair (mbedtls_ecdsa_context *ctx, const mbedtls_ecp_keypair *key) |
Set an ECDSA context from an EC key pair. More... | |
void | mbedtls_ecdsa_init (mbedtls_ecdsa_context *ctx) |
Initialize context. More... | |
void | mbedtls_ecdsa_free (mbedtls_ecdsa_context *ctx) |
Free context. More... | |
Elliptic curve DSA.
Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: GPL-2.0
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.
This file is part of mbed TLS (https://tls.mbed.org)
Definition in file ecdsa.h.
#define MBEDTLS_ECDSA_MAX_LEN ( 3 + 2 * ( 3 + MBEDTLS_ECP_MAX_BYTES ) ) |
void mbedtls_ecdsa_free | ( | mbedtls_ecdsa_context * | ctx | ) |
Free context.
ctx | Context to free |
int mbedtls_ecdsa_from_keypair | ( | mbedtls_ecdsa_context * | ctx, |
const mbedtls_ecp_keypair * | key | ||
) |
Set an ECDSA context from an EC key pair.
ctx | ECDSA context to set |
key | EC key to use |
int mbedtls_ecdsa_genkey | ( | mbedtls_ecdsa_context * | ctx, |
mbedtls_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 MBEDTLS_ECP_DP_XXX macros depending on configuration. |
f_rng | RNG function |
p_rng | RNG parameter |
void mbedtls_ecdsa_init | ( | mbedtls_ecdsa_context * | ctx | ) |
Initialize context.
ctx | Context to initialize |
int mbedtls_ecdsa_read_signature | ( | mbedtls_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 mbedtls_ecdsa_sign | ( | mbedtls_ecp_group * | grp, |
mbedtls_mpi * | r, | ||
mbedtls_mpi * | s, | ||
const mbedtls_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 mbedtls_ecdsa_sign_det | ( | mbedtls_ecp_group * | grp, |
mbedtls_mpi * | r, | ||
mbedtls_mpi * | s, | ||
const mbedtls_mpi * | d, | ||
const unsigned char * | buf, | ||
size_t | blen, | ||
mbedtls_md_type_t | md_alg | ||
) |
Compute ECDSA signature of a previously hashed message, deterministic version (RFC 6979).
grp | ECP group |
r | First output integer |
s | Second output integer |
d | Private signing key |
buf | Message hash |
blen | Length of buf |
md_alg | MD algorithm used to hash the message |
int mbedtls_ecdsa_verify | ( | mbedtls_ecp_group * | grp, |
const unsigned char * | buf, | ||
size_t | blen, | ||
const mbedtls_ecp_point * | Q, | ||
const mbedtls_mpi * | r, | ||
const mbedtls_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 mbedtls_ecdsa_write_signature | ( | mbedtls_ecdsa_context * | ctx, |
mbedtls_md_type_t | md_alg, | ||
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 |
md_alg | Algorithm that was used to hash the message |
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 |
int mbedtls_ecdsa_write_signature_det | ( | mbedtls_ecdsa_context * | ctx, |
const unsigned char * | hash, | ||
size_t | hlen, | ||
unsigned char * | sig, | ||
size_t * | slen, | ||
mbedtls_md_type_t | md_alg | ||
) |
Compute ECDSA signature and write it to buffer, serialized as defined in RFC 4492 page 20.
Deterministic version, RFC 6979. (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 |
md_alg | MD algorithm used to hash the message |