RetroArch
|
#include "mbedtls/config.h"
#include "mbedtls/pk.h"
#include "mbedtls/pk_internal.h"
#include "mbedtls/bignum.h"
#include "mbedtls/rsa.h"
#include "mbedtls/ecp.h"
#include "mbedtls/ecdsa.h"
#include <limits.h>
#include "arc4_alt.h"
Functions | |
void | mbedtls_pk_init (mbedtls_pk_context *ctx) |
Initialize a mbedtls_pk_context (as NONE) More... | |
void | mbedtls_pk_free (mbedtls_pk_context *ctx) |
Free a mbedtls_pk_context. More... | |
const mbedtls_pk_info_t * | mbedtls_pk_info_from_type (mbedtls_pk_type_t pk_type) |
Return information associated with the given PK type. More... | |
int | mbedtls_pk_setup (mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info) |
Initialize a PK context with the information given and allocates the type-specific PK subcontext. More... | |
int | mbedtls_pk_setup_rsa_alt (mbedtls_pk_context *ctx, void *key, mbedtls_pk_rsa_alt_decrypt_func decrypt_func, mbedtls_pk_rsa_alt_sign_func sign_func, mbedtls_pk_rsa_alt_key_len_func key_len_func) |
Initialize an RSA-alt context. More... | |
int | mbedtls_pk_can_do (const mbedtls_pk_context *ctx, mbedtls_pk_type_t type) |
Tell if a context can do the operation given by type. More... | |
static int | pk_hashlen_helper (mbedtls_md_type_t md_alg, size_t *hash_len) |
int | mbedtls_pk_verify (mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, const unsigned char *hash, size_t hash_len, const unsigned char *sig, size_t sig_len) |
Verify signature (including padding if relevant). More... | |
int | mbedtls_pk_verify_ext (mbedtls_pk_type_t type, const void *options, mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, const unsigned char *hash, size_t hash_len, const unsigned char *sig, size_t sig_len) |
Verify signature, with options. (Includes verification of the padding depending on type.) More... | |
int | mbedtls_pk_sign (mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, const unsigned char *hash, size_t hash_len, unsigned char *sig, size_t *sig_len, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng) |
Make signature, including padding if relevant. More... | |
int | mbedtls_pk_decrypt (mbedtls_pk_context *ctx, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen, size_t osize, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng) |
Decrypt message (including padding if relevant). More... | |
int | mbedtls_pk_encrypt (mbedtls_pk_context *ctx, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen, size_t osize, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng) |
Encrypt message (including padding if relevant). More... | |
int | mbedtls_pk_check_pair (const mbedtls_pk_context *pub, const mbedtls_pk_context *prv) |
Check if a public-private pair of keys matches. More... | |
size_t | mbedtls_pk_get_bitlen (const mbedtls_pk_context *ctx) |
Get the size in bits of the underlying key. More... | |
int | mbedtls_pk_debug (const mbedtls_pk_context *ctx, mbedtls_pk_debug_item *items) |
Export debug information. More... | |
const char * | mbedtls_pk_get_name (const mbedtls_pk_context *ctx) |
Access the type name. More... | |
mbedtls_pk_type_t | mbedtls_pk_get_type (const mbedtls_pk_context *ctx) |
Get the key type. More... | |
int mbedtls_pk_can_do | ( | const mbedtls_pk_context * | ctx, |
mbedtls_pk_type_t | type | ||
) |
Tell if a context can do the operation given by type.
ctx | Context to test |
type | Target type |
int mbedtls_pk_check_pair | ( | const mbedtls_pk_context * | pub, |
const mbedtls_pk_context * | prv | ||
) |
int mbedtls_pk_debug | ( | const mbedtls_pk_context * | ctx, |
mbedtls_pk_debug_item * | items | ||
) |
Export debug information.
ctx | Context to use |
items | Place to write debug items |
int mbedtls_pk_decrypt | ( | mbedtls_pk_context * | ctx, |
const unsigned char * | input, | ||
size_t | ilen, | ||
unsigned char * | output, | ||
size_t * | olen, | ||
size_t | osize, | ||
int(*)(void *, unsigned char *, size_t) | f_rng, | ||
void * | p_rng | ||
) |
Decrypt message (including padding if relevant).
ctx | PK context to use - must hold a private key |
input | Input to decrypt |
ilen | Input size |
output | Decrypted output |
olen | Decrypted message length |
osize | Size of the output buffer |
f_rng | RNG function |
p_rng | RNG parameter |
int mbedtls_pk_encrypt | ( | mbedtls_pk_context * | ctx, |
const unsigned char * | input, | ||
size_t | ilen, | ||
unsigned char * | output, | ||
size_t * | olen, | ||
size_t | osize, | ||
int(*)(void *, unsigned char *, size_t) | f_rng, | ||
void * | p_rng | ||
) |
Encrypt message (including padding if relevant).
ctx | PK context to use |
input | Message to encrypt |
ilen | Message size |
output | Encrypted output |
olen | Encrypted output length |
osize | Size of the output buffer |
f_rng | RNG function |
p_rng | RNG parameter |
void mbedtls_pk_free | ( | mbedtls_pk_context * | ctx | ) |
Free a mbedtls_pk_context.
size_t mbedtls_pk_get_bitlen | ( | const mbedtls_pk_context * | ctx | ) |
Get the size in bits of the underlying key.
ctx | Context to use |
const char* mbedtls_pk_get_name | ( | const mbedtls_pk_context * | ctx | ) |
Access the type name.
ctx | Context to use |
mbedtls_pk_type_t mbedtls_pk_get_type | ( | const mbedtls_pk_context * | ctx | ) |
Get the key type.
ctx | Context to use |
const mbedtls_pk_info_t* mbedtls_pk_info_from_type | ( | mbedtls_pk_type_t | pk_type | ) |
Return information associated with the given PK type.
pk_type | PK type to search for. |
void mbedtls_pk_init | ( | mbedtls_pk_context * | ctx | ) |
Initialize a mbedtls_pk_context (as NONE)
int mbedtls_pk_setup | ( | mbedtls_pk_context * | ctx, |
const mbedtls_pk_info_t * | info | ||
) |
Initialize a PK context with the information given and allocates the type-specific PK subcontext.
ctx | Context to initialize. Must be empty (type NONE). |
info | Information to use |
mbedtls_pk_setup_rsa_alt()
instead. int mbedtls_pk_setup_rsa_alt | ( | mbedtls_pk_context * | ctx, |
void * | key, | ||
mbedtls_pk_rsa_alt_decrypt_func | decrypt_func, | ||
mbedtls_pk_rsa_alt_sign_func | sign_func, | ||
mbedtls_pk_rsa_alt_key_len_func | key_len_func | ||
) |
Initialize an RSA-alt context.
ctx | Context to initialize. Must be empty (type NONE). |
key | RSA key pointer |
decrypt_func | Decryption function |
sign_func | Signing function |
key_len_func | Function returning key length in bytes |
mbedtls_pk_setup()
for RSA-alt. int mbedtls_pk_sign | ( | mbedtls_pk_context * | ctx, |
mbedtls_md_type_t | md_alg, | ||
const unsigned char * | hash, | ||
size_t | hash_len, | ||
unsigned char * | sig, | ||
size_t * | sig_len, | ||
int(*)(void *, unsigned char *, size_t) | f_rng, | ||
void * | p_rng | ||
) |
Make signature, including padding if relevant.
ctx | PK context to use - must hold a private key |
md_alg | Hash algorithm used (see notes) |
hash | Hash of the message to sign |
hash_len | Hash length or 0 (see notes) |
sig | Place to write the signature |
sig_len | Number of bytes written |
f_rng | RNG function |
p_rng | RNG parameter |
int mbedtls_pk_verify | ( | mbedtls_pk_context * | ctx, |
mbedtls_md_type_t | md_alg, | ||
const unsigned char * | hash, | ||
size_t | hash_len, | ||
const unsigned char * | sig, | ||
size_t | sig_len | ||
) |
Verify signature (including padding if relevant).
ctx | PK context to use |
md_alg | Hash algorithm used (see notes) |
hash | Hash of the message to sign |
hash_len | Hash length or 0 (see notes) |
sig | Signature to verify |
sig_len | Signature length |
mbedtls_pk_verify_ext( MBEDTLS_PK_RSASSA_PSS, ... )
to verify RSASSA_PSS signatures.int mbedtls_pk_verify_ext | ( | mbedtls_pk_type_t | type, |
const void * | options, | ||
mbedtls_pk_context * | ctx, | ||
mbedtls_md_type_t | md_alg, | ||
const unsigned char * | hash, | ||
size_t | hash_len, | ||
const unsigned char * | sig, | ||
size_t | sig_len | ||
) |
Verify signature, with options. (Includes verification of the padding depending on type.)
type | Signature type (inc. possible padding type) to verify |
options | Pointer to type-specific options, or NULL |
ctx | PK context to use |
md_alg | Hash algorithm used (see notes) |
hash | Hash of the message to sign |
hash_len | Hash length or 0 (see notes) |
sig | Signature to verify |
sig_len | Signature length |
|
inlinestatic |