security_mbedtls.c File Reference

Security module implementation file. More...

#include "mcl_core/mcl_assert.h"
#include "mcl_core/mcl_memory.h"
#include "mbedtls/sha256.h"
#include "mbedtls/entropy.h"
#include "mbedtls/ctr_drbg.h"
Include dependency graph for security_mbedtls.c:

Go to the source code of this file.

Macros

#define SHA256_DIGEST_LENGTH   32
 
#define KEY_LENGTH_BITS   3072
 

Functions

mcl_error_t security_initialize (void)
 
mcl_error_t security_hash_sha256 (const mcl_uint8_t *data, mcl_size_t data_size, mcl_uint8_t **hash, mcl_size_t *hash_size)
 
mcl_error_t security_rsa_sign (char *rsa_key, char *data, mcl_size_t data_size, mcl_uint8_t **signature, mcl_size_t *signature_size)
 
mcl_error_t security_generate_rsa_key (char **public_key, char **private_key)
 
mcl_error_t security_rsa_get_modulus_and_exponent (char *public_key, char **modulus, char **exponent)
 
mcl_error_t security_generate_random_bytes (unsigned char *buffer, mcl_size_t size)
 

Variables

static mbedtls_entropy_context entropy
 
static mbedtls_ctr_drbg_context ctr_drbg
 
static mcl_bool_t is_initialized = MCL_FALSE
 

Detailed Description

Security module implementation file.

Definition in file security_mbedtls.c.

Macro Definition Documentation

#define KEY_LENGTH_BITS   3072

Definition at line 17 of file security_mbedtls.c.

#define SHA256_DIGEST_LENGTH   32

Definition at line 15 of file security_mbedtls.c.

Referenced by security_hash_sha256().

Function Documentation

mcl_error_t security_generate_random_bytes ( unsigned char *  buffer,
mcl_size_t  size 
)

This function is used to generate random bytes.

Parameters
[out]bufferBuffer which will be filled with random bytes.
[in]sizeSize of the buffer.
Returns
  • MCL_OK in case of success.
  • MCL_FAIL in case of an internal error in MCL.

Definition at line 88 of file security_mbedtls.c.

Referenced by _generate_correlation_id_string(), mcl_random_generate_bytes(), random_generate_guid(), and random_generate_number().

Here is the caller graph for this function:

mcl_error_t security_generate_rsa_key ( char **  public_key,
char **  private_key 
)

This function is used to generate the RSA public/private keys.

Generated keys will be returned as out parameters.

Parameters
[out]public_keyGenerated public key. New memory space will be allocated for this parameter.
[out]private_keyGenerated private key. New memory space will be allocated for this parameter.
Returns

Definition at line 78 of file security_mbedtls.c.

Referenced by security_handler_generate_rsa_key().

Here is the caller graph for this function:

mcl_error_t security_hash_sha256 ( const mcl_uint8_t data,
mcl_size_t  data_size,
mcl_uint8_t **  hash,
mcl_size_t hash_size 
)

This function is used to generate the sha256 hash of the given data.

See also
security_handler_hash_sha256.

Definition at line 45 of file security_mbedtls.c.

Referenced by hmac_sha256(), and security_handler_hash_sha256().

Here is the caller graph for this function:

mcl_error_t security_initialize ( void  )

This function is used to initialize security implementation.

Returns
  • MCL_OK in case of success.
  • MCL_FAIL in case of an internal error in MCL.

Definition at line 27 of file security_mbedtls.c.

Referenced by core_processor_initialize().

Here is the caller graph for this function:

mcl_error_t security_rsa_get_modulus_and_exponent ( char *  public_key,
char **  modulus,
char **  exponent 
)

This function is used to get the modulus (n) and public exponent (e) parameters of RSA key in base64 format.

Parameters
public_keyPublic key in PEM format.
modulusBase64 encoded modulus of RSA key.
exponentBase64 encoded public exponent of RSA key.
Returns

Definition at line 83 of file security_mbedtls.c.

Referenced by _add_jwks().

Here is the caller graph for this function:

mcl_error_t security_rsa_sign ( char *  rsa_key,
char *  data,
mcl_size_t  data_size,
mcl_uint8_t **  signature,
mcl_size_t signature_size 
)

This function is used to sign data with RSA key.

Received key will be used to sign.

Parameters
[in]rsa_keyPrivate key to be used in signing.
[in]dataThe data to be signed.
[in]data_sizeSize of the data.
[out]signatureGenerated signature.
[out]signature_sizeSize of signature.
Returns

Definition at line 73 of file security_mbedtls.c.

Referenced by security_handler_rsa_sign().

Here is the caller graph for this function:

Variable Documentation

mbedtls_ctr_drbg_context ctr_drbg
static

Definition at line 20 of file security_mbedtls.c.

Referenced by security_generate_random_bytes(), and security_initialize().

mbedtls_entropy_context entropy
static

Definition at line 19 of file security_mbedtls.c.

Referenced by security_initialize().

mcl_bool_t is_initialized = MCL_FALSE
static

Definition at line 21 of file security_mbedtls.c.

Referenced by security_generate_random_bytes(), and security_initialize().