Platform Security Architecture — cryptography and keystore interface  Working draft
Classes | Functions
Random generation

Classes

struct  psa_generate_key_extra_rsa
 

Functions

psa_status_t psa_generate_random (uint8_t *output, size_t output_size)
 Generate random bytes. More...
 
psa_status_t psa_generate_key (psa_key_slot_t key, psa_key_type_t type, size_t bits, const void *extra, size_t extra_size)
 Generate a key or key pair. More...
 

Detailed Description

Function Documentation

◆ psa_generate_key()

psa_status_t psa_generate_key ( psa_key_slot_t  key,
psa_key_type_t  type,
size_t  bits,
const void *  extra,
size_t  extra_size 
)

Generate a key or key pair.

Parameters
keySlot where the key will be stored. This must be a valid slot for a key of the chosen type. It must be unoccupied.
typeKey type (a PSA_KEY_TYPE_XXX value).
bitsKey size in bits.
[in]extraExtra parameters for key generation. The interpretation of this parameter depends on type. All types support NULL to use default parameters. Implementation that support the generation of vendor-specific key types that allow extra parameters shall document the format of these extra parameters and the default values. For standard parameters, the meaning of extra is as follows:
extra_sizeSize of the buffer that extra points to, in bytes. Note that if extra is NULL then extra_size must be zero.
Return values
PSA_SUCCESS
PSA_ERROR_NOT_SUPPORTED
PSA_ERROR_INVALID_ARGUMENT
PSA_ERROR_INSUFFICIENT_MEMORY
PSA_ERROR_INSUFFICIENT_ENTROPY
PSA_ERROR_COMMUNICATION_FAILURE
PSA_ERROR_HARDWARE_FAILURE
PSA_ERROR_TAMPERING_DETECTED

◆ psa_generate_random()

psa_status_t psa_generate_random ( uint8_t *  output,
size_t  output_size 
)

Generate random bytes.

Warning
This function can fail! Callers MUST check the return status and MUST NOT use the content of the output buffer if the return status is not PSA_SUCCESS.
Note
To generate a key, use psa_generate_key() instead.
Parameters
[out]outputOutput buffer for the generated data.
output_sizeNumber of bytes to generate and output.
Return values
PSA_SUCCESS
PSA_ERROR_NOT_SUPPORTED
PSA_ERROR_INSUFFICIENT_ENTROPY
PSA_ERROR_COMMUNICATION_FAILURE
PSA_ERROR_HARDWARE_FAILURE
PSA_ERROR_TAMPERING_DETECTED