|
Mbed TLS v4.0.0
|
Typedefs | |
| typedef struct psa_generate_key_iop_s | psa_generate_key_iop_t |
Functions | |
| uint32_t | psa_generate_key_iop_get_num_ops (psa_generate_key_iop_t *operation) |
Get the number of ops that a key generation operation has taken so far. If the operation has completed, then this will represent the number of ops required for the entire operation. After initialization or calling psa_generate_key_iop_abort() on the operation, a value of 0 will be returned. More... | |
| psa_status_t | psa_generate_key_iop_setup (psa_generate_key_iop_t *operation, const psa_key_attributes_t *attributes) |
| Start a key generation operation, in an interruptible manner. More... | |
| psa_status_t | psa_generate_key_iop_complete (psa_generate_key_iop_t *operation, mbedtls_svc_key_id_t *key) |
| Continue and eventually complete the action of key generation, in an interruptible manner. More... | |
| psa_status_t | psa_generate_key_iop_abort (psa_generate_key_iop_t *operation) |
| Abort a key generation operation. More... | |
| typedef struct psa_generate_key_iop_s psa_generate_key_iop_t |
The type of the state data structure for interruptible key generation operations.
Before calling any function on an interruptible key generation object, the application must initialize it by any of the following means:
This is an implementation-defined struct. Applications should not make any assumptions about the content of this structure. Implementation details can change in future versions without notice.
| psa_status_t psa_generate_key_iop_abort | ( | psa_generate_key_iop_t * | operation | ) |
Abort a key generation operation.
psa_generate_key_iop_get_num_ops() if required before calling.psa_generate_key_iop_setup() again.psa_generate_key_iop_abort() after the operation has already been terminated by a call to psa_generate_key_iop_abort() or psa_generate_key_iop_complete() is safe.| [in,out] | operation | The psa_key_agreement_iop_t to use |
| PSA_SUCCESS | The operation was aborted successfully. |
| PSA_ERROR_BAD_STATE | The library has not been previously initialized by psa_crypto_init(). |
| psa_status_t psa_generate_key_iop_complete | ( | psa_generate_key_iop_t * | operation, |
| mbedtls_svc_key_id_t * | key | ||
| ) |
Continue and eventually complete the action of key generation, in an interruptible manner.
psa_generate_key_iop_setup() psa_generate_key_iop_setup() is equivalent to psa_generate_key() but this function can return early and resume according to the limit set with psa_interruptible_set_max_ops() to reduce the maximum time spent in a function call.psa_generate_key_iop_abort() at any point if they no longer want the result.psa_generate_key_iop_abort().| [in,out] | operation | The psa_generate_key_iop_t to use. This must be initialized first, and have had psa_generate_key_iop_setup() called with it first. |
| [out] | key | On success, an identifier for the newly created key, on failure this will be set to PSA_KEY_ID_NULL. |
| PSA_SUCCESS | The operation is complete and key contains the new key. If the key is persistent, the key material and the key's metadata have been saved to persistent storage. |
| PSA_OPERATION_INCOMPLETE | Operation was interrupted due to the setting of psa_interruptible_set_max_ops(). There is still work to be done. Call this function again with the same operation object. |
| PSA_ERROR_ALREADY_EXISTS | This is an attempt to create a persistent key, and there is already a persistent key with the given identifier. |
| PSA_ERROR_NOT_SUPPORTED | |
| PSA_ERROR_INVALID_ARGUMENT | |
| PSA_ERROR_INSUFFICIENT_MEMORY | |
| PSA_ERROR_COMMUNICATION_FAILURE | |
| PSA_ERROR_HARDWARE_FAILURE | |
| PSA_ERROR_CORRUPTION_DETECTED | |
| PSA_ERROR_STORAGE_FAILURE | |
| PSA_ERROR_DATA_CORRUPT | |
| PSA_ERROR_DATA_INVALID | |
| PSA_ERROR_INSUFFICIENT_ENTROPY | |
| PSA_ERROR_BAD_STATE | The following conditions can result in this error:
|
| uint32_t psa_generate_key_iop_get_num_ops | ( | psa_generate_key_iop_t * | operation | ) |
Get the number of ops that a key generation operation has taken so far. If the operation has completed, then this will represent the number of ops required for the entire operation. After initialization or calling psa_generate_key_iop_abort() on the operation, a value of 0 will be returned.
psa_interruptible_set_max_ops().| operation | The psa_generate_key_iop_t to use. This must be initialized first. |
| psa_status_t psa_generate_key_iop_setup | ( | psa_generate_key_iop_t * | operation, |
| const psa_key_attributes_t * | attributes | ||
| ) |
Start a key generation operation, in an interruptible manner.
psa_generate_key_iop_complete() psa_generate_key_iop_complete() is equivalent to psa_generate_key() but psa_generate_key_iop_complete() can return early and resume according to the limit set with psa_interruptible_set_max_ops() to reduce the maximum time spent in a function.psa_generate_key_iop_complete() repeatedly on the same operation object after a successful call to this function until psa_generate_key_iop_complete() either returns PSA_SUCCESS or an error. psa_generate_key_iop_complete() will return PSA_OPERATION_INCOMPLETE if there is more work to do. Alternatively users can call psa_generate_key_iop_abort() at any point if they no longer want the result.psa_generate_key_iop_get_num_ops() if required before calling.psa_generate_key_iop_abort().attributes.)| [in,out] | operation | The psa_generate_key_iop_t to use. This must be initialized as per the documentation for psa_generate_key_iop_t, and be inactive. |
| [in] | attributes | The attributes for the new key. The following attributes are required for all keys:
|
attributes is an input parameter, it is not updated with the final key attributes. The final attributes of the new key can be queried by calling psa_get_key_attributes() with the key's identifier.| PSA_SUCCESS | The operation started successfully. Call psa_generate_key_iop_complete() with the same context to complete the operation. |
| PSA_ERROR_ALREADY_EXISTS | This is an attempt to create a persistent key, and there is already a persistent key with the given identifier |
| PSA_ERROR_NOT_SUPPORTED | The key attributes, as a whole, are not supported, either in general or in the specified storage location. |
| PSA_ERROR_INVALID_ARGUMENT | The following conditions can result in this error:
|
| PSA_ERROR_NOT_PERMITTED | Creating a key with the specified attributes is not permitted. |
| PSA_ERROR_INSUFFICIENT_MEMORY | |
| PSA_ERROR_COMMUNICATION_FAILURE | |
| PSA_ERROR_HARDWARE_FAILURE | |
| PSA_ERROR_CORRUPTION_DETECTED | |
| PSA_ERROR_STORAGE_FAILURE | |
| PSA_ERROR_DATA_CORRUPT | |
| PSA_ERROR_DATA_INVALID | |
| PSA_ERROR_INSUFFICIENT_STORAGE | |
| PSA_ERROR_BAD_STATE | The following conditions can result in this error:
|
1.8.6