RetroArch
|
#include "mbedtls/config.h"
#include "mbedtls/ecdsa.h"
#include "mbedtls/asn1write.h"
#include <string.h>
#include "mbedtls/hmac_drbg.h"
Functions | |
static int | derive_mpi (const mbedtls_ecp_group *grp, mbedtls_mpi *x, const unsigned char *buf, size_t blen) |
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... | |
static int | ecdsa_signature_to_asn1 (const mbedtls_mpi *r, const mbedtls_mpi *s, unsigned char *sig, size_t *slen) |
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. (Not thread-safe to use same context in multiple threads) 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) |
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) 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... | |
|
static |
|
static |
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 |