Mbed OS Reference
|
This file provides an API for the RSA public-key cryptosystem. More...
Go to the source code of this file.
Data Structures | |
struct | mbedtls_rsa_context |
The RSA context structure. More... | |
Macros | |
#define | MBEDTLS_ERR_RSA_BAD_INPUT_DATA -0x4080 |
Bad input parameters to function. More... | |
#define | MBEDTLS_ERR_RSA_INVALID_PADDING -0x4100 |
Input data contains invalid padding and is rejected. More... | |
#define | MBEDTLS_ERR_RSA_KEY_GEN_FAILED -0x4180 |
Something failed during generation of a key. More... | |
#define | MBEDTLS_ERR_RSA_KEY_CHECK_FAILED -0x4200 |
Key failed to pass the validity check of the library. More... | |
#define | MBEDTLS_ERR_RSA_PUBLIC_FAILED -0x4280 |
The public key operation failed. More... | |
#define | MBEDTLS_ERR_RSA_PRIVATE_FAILED -0x4300 |
The private key operation failed. More... | |
#define | MBEDTLS_ERR_RSA_VERIFY_FAILED -0x4380 |
The PKCS#1 verification failed. More... | |
#define | MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE -0x4400 |
The output buffer for decryption is not large enough. More... | |
#define | MBEDTLS_ERR_RSA_RNG_FAILED -0x4480 |
The random generator failed to generate non-zeros. More... | |
#define | MBEDTLS_ERR_RSA_UNSUPPORTED_OPERATION -0x4500 |
The implementation does not offer the requested operation, for example, because of security violations or lack of functionality. More... | |
#define | MBEDTLS_ERR_RSA_HW_ACCEL_FAILED -0x4580 |
RSA hardware accelerator failed. More... | |
#define | MBEDTLS_RSA_PUBLIC 0 |
Request private key operation. More... | |
#define | MBEDTLS_RSA_PRIVATE 1 |
Request public key operation. More... | |
#define | MBEDTLS_RSA_PKCS_V15 0 |
Use PKCS#1 v1.5 encoding. More... | |
#define | MBEDTLS_RSA_PKCS_V21 1 |
Use PKCS#1 v2.1 encoding. More... | |
#define | MBEDTLS_RSA_SIGN 1 |
Identifier for RSA signature operations. More... | |
#define | MBEDTLS_RSA_CRYPT 2 |
Identifier for RSA encryption and decryption operations. More... | |
#define | MBEDTLS_RSA_SALT_LEN_ANY -1 |
Constant for mbedtls_rsa_rsassa_pss_verify_ext to accept any salt length. More... | |
Typedefs | |
typedef struct mbedtls_rsa_context | mbedtls_rsa_context |
The RSA context structure. More... | |
Functions | |
void | mbedtls_rsa_init (mbedtls_rsa_context *ctx, int padding, int hash_id) |
This function initializes an RSA context. More... | |
int | mbedtls_rsa_import (mbedtls_rsa_context *ctx, const mbedtls_mpi *N, const mbedtls_mpi *P, const mbedtls_mpi *Q, const mbedtls_mpi *D, const mbedtls_mpi *E) |
This function imports a set of core parameters into an RSA context. More... | |
int | mbedtls_rsa_import_raw (mbedtls_rsa_context *ctx, unsigned char const *N, size_t N_len, unsigned char const *P, size_t P_len, unsigned char const *Q, size_t Q_len, unsigned char const *D, size_t D_len, unsigned char const *E, size_t E_len) |
This function imports core RSA parameters, in raw big-endian binary format, into an RSA context. More... | |
int | mbedtls_rsa_complete (mbedtls_rsa_context *ctx) |
This function completes an RSA context from a set of imported core parameters. More... | |
int | mbedtls_rsa_export (const mbedtls_rsa_context *ctx, mbedtls_mpi *N, mbedtls_mpi *P, mbedtls_mpi *Q, mbedtls_mpi *D, mbedtls_mpi *E) |
This function exports the core parameters of an RSA key. More... | |
int | mbedtls_rsa_export_raw (const mbedtls_rsa_context *ctx, unsigned char *N, size_t N_len, unsigned char *P, size_t P_len, unsigned char *Q, size_t Q_len, unsigned char *D, size_t D_len, unsigned char *E, size_t E_len) |
This function exports core parameters of an RSA key in raw big-endian binary format. More... | |
int | mbedtls_rsa_export_crt (const mbedtls_rsa_context *ctx, mbedtls_mpi *DP, mbedtls_mpi *DQ, mbedtls_mpi *QP) |
This function exports CRT parameters of a private RSA key. More... | |
void | mbedtls_rsa_set_padding (mbedtls_rsa_context *ctx, int padding, int hash_id) |
This function sets padding for an already initialized RSA context. More... | |
size_t | mbedtls_rsa_get_len (const mbedtls_rsa_context *ctx) |
This function retrieves the length of RSA modulus in Bytes. More... | |
int | mbedtls_rsa_gen_key (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, unsigned int nbits, int exponent) |
This function generates an RSA keypair. More... | |
int | mbedtls_rsa_check_pubkey (const mbedtls_rsa_context *ctx) |
This function checks if a context contains at least an RSA public key. More... | |
int | mbedtls_rsa_check_privkey (const mbedtls_rsa_context *ctx) |
This function checks if a context contains an RSA private key and perform basic consistency checks. More... | |
int | mbedtls_rsa_check_pub_priv (const mbedtls_rsa_context *pub, const mbedtls_rsa_context *prv) |
This function checks a public-private RSA key pair. More... | |
int | mbedtls_rsa_public (mbedtls_rsa_context *ctx, const unsigned char *input, unsigned char *output) |
This function performs an RSA public key operation. More... | |
int | mbedtls_rsa_private (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, const unsigned char *input, unsigned char *output) |
This function performs an RSA private key operation. More... | |
int | mbedtls_rsa_pkcs1_encrypt (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, size_t ilen, const unsigned char *input, unsigned char *output) |
This function adds the message padding, then performs an RSA operation. More... | |
int | mbedtls_rsa_rsaes_pkcs1_v15_encrypt (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, size_t ilen, const unsigned char *input, unsigned char *output) |
This function performs a PKCS#1 v1.5 encryption operation (RSAES-PKCS1-v1_5-ENCRYPT). More... | |
int | mbedtls_rsa_rsaes_oaep_encrypt (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, const unsigned char *label, size_t label_len, size_t ilen, const unsigned char *input, unsigned char *output) |
This function performs a PKCS#1 v2.1 OAEP encryption operation (RSAES-OAEP-ENCRYPT). More... | |
int | mbedtls_rsa_pkcs1_decrypt (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, size_t *olen, const unsigned char *input, unsigned char *output, size_t output_max_len) |
This function performs an RSA operation, then removes the message padding. More... | |
int | mbedtls_rsa_rsaes_pkcs1_v15_decrypt (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, size_t *olen, const unsigned char *input, unsigned char *output, size_t output_max_len) |
This function performs a PKCS#1 v1.5 decryption operation (RSAES-PKCS1-v1_5-DECRYPT). More... | |
int | mbedtls_rsa_rsaes_oaep_decrypt (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, const unsigned char *label, size_t label_len, size_t *olen, const unsigned char *input, unsigned char *output, size_t output_max_len) |
This function performs a PKCS#1 v2.1 OAEP decryption operation (RSAES-OAEP-DECRYPT). More... | |
int | mbedtls_rsa_pkcs1_sign (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, mbedtls_md_type_t md_alg, unsigned int hashlen, const unsigned char *hash, unsigned char *sig) |
This function performs a private RSA operation to sign a message digest using PKCS#1. More... | |
int | mbedtls_rsa_rsassa_pkcs1_v15_sign (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, mbedtls_md_type_t md_alg, unsigned int hashlen, const unsigned char *hash, unsigned char *sig) |
This function performs a PKCS#1 v1.5 signature operation (RSASSA-PKCS1-v1_5-SIGN). More... | |
int | mbedtls_rsa_rsassa_pss_sign (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, mbedtls_md_type_t md_alg, unsigned int hashlen, const unsigned char *hash, unsigned char *sig) |
This function performs a PKCS#1 v2.1 PSS signature operation (RSASSA-PSS-SIGN). More... | |
int | mbedtls_rsa_pkcs1_verify (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, mbedtls_md_type_t md_alg, unsigned int hashlen, const unsigned char *hash, const unsigned char *sig) |
This function performs a public RSA operation and checks the message digest. More... | |
int | mbedtls_rsa_rsassa_pkcs1_v15_verify (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, mbedtls_md_type_t md_alg, unsigned int hashlen, const unsigned char *hash, const unsigned char *sig) |
This function performs a PKCS#1 v1.5 verification operation (RSASSA-PKCS1-v1_5-VERIFY). More... | |
int | mbedtls_rsa_rsassa_pss_verify (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, mbedtls_md_type_t md_alg, unsigned int hashlen, const unsigned char *hash, const unsigned char *sig) |
This function performs a PKCS#1 v2.1 PSS verification operation (RSASSA-PSS-VERIFY). More... | |
int | mbedtls_rsa_rsassa_pss_verify_ext (mbedtls_rsa_context *ctx, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng, int mode, mbedtls_md_type_t md_alg, unsigned int hashlen, const unsigned char *hash, mbedtls_md_type_t mgf1_hash_id, int expected_salt_len, const unsigned char *sig) |
This function performs a PKCS#1 v2.1 PSS verification operation (RSASSA-PSS-VERIFY). More... | |
int | mbedtls_rsa_copy (mbedtls_rsa_context *dst, const mbedtls_rsa_context *src) |
This function copies the components of an RSA context. More... | |
void | mbedtls_rsa_free (mbedtls_rsa_context *ctx) |
This function frees the components of an RSA key. More... | |
This file provides an API for the RSA public-key cryptosystem.
The RSA public-key cryptosystem is defined in Public-Key Cryptography Standards (PKCS) #1 v1.5: RSA Encryption and Public-Key Cryptography Standards (PKCS) #1 v2.1: RSA Cryptography Specifications.
Definition in file rsa.h.