mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-07-29 11:41:15 +03:00
Merge pull request #9490 from waleed-elmelegy-arm/add-iop-key-agrmnt-api
Add PSA interruptible key agreement APIs
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
set(libs
|
||||
${mbedtls_target}
|
||||
${everest_target}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
)
|
||||
|
||||
|
@ -475,13 +475,13 @@ psa_status_t mbedtls_test_wrap_psa_key_agreement_iop_abort(
|
||||
|
||||
psa_status_t mbedtls_test_wrap_psa_key_agreement_iop_complete(
|
||||
psa_key_agreement_iop_t *arg0_operation,
|
||||
psa_key_id_t *arg1_key);
|
||||
mbedtls_svc_key_id_t *arg1_key);
|
||||
#define psa_key_agreement_iop_complete(arg0_operation, arg1_key) \
|
||||
mbedtls_test_wrap_psa_key_agreement_iop_complete(arg0_operation, arg1_key)
|
||||
|
||||
psa_status_t mbedtls_test_wrap_psa_key_agreement_iop_setup(
|
||||
psa_key_agreement_iop_t *arg0_operation,
|
||||
psa_key_id_t arg1_private_key,
|
||||
mbedtls_svc_key_id_t arg1_private_key,
|
||||
const uint8_t *arg2_peer_key,
|
||||
size_t arg3_peer_key_length,
|
||||
psa_algorithm_t arg4_alg,
|
||||
|
@ -1624,6 +1624,42 @@ int psasim_deserialise_mbedtls_svc_key_id_t(uint8_t **pos,
|
||||
return 1;
|
||||
}
|
||||
|
||||
size_t psasim_serialise_psa_key_agreement_iop_t_needs(
|
||||
psa_key_agreement_iop_t value)
|
||||
{
|
||||
return sizeof(value);
|
||||
}
|
||||
|
||||
int psasim_serialise_psa_key_agreement_iop_t(uint8_t **pos,
|
||||
size_t *remaining,
|
||||
psa_key_agreement_iop_t value)
|
||||
{
|
||||
if (*remaining < sizeof(value)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
memcpy(*pos, &value, sizeof(value));
|
||||
*pos += sizeof(value);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int psasim_deserialise_psa_key_agreement_iop_t(uint8_t **pos,
|
||||
size_t *remaining,
|
||||
psa_key_agreement_iop_t *value)
|
||||
{
|
||||
if (*remaining < sizeof(*value)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
memcpy(value, *pos, sizeof(*value));
|
||||
|
||||
*pos += sizeof(*value);
|
||||
*remaining -= sizeof(*value);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void psa_sim_serialize_reset(void)
|
||||
{
|
||||
memset(hash_operation_handles, 0,
|
||||
|
@ -1301,3 +1301,46 @@ int psasim_serialise_mbedtls_svc_key_id_t(uint8_t **pos,
|
||||
int psasim_deserialise_mbedtls_svc_key_id_t(uint8_t **pos,
|
||||
size_t *remaining,
|
||||
mbedtls_svc_key_id_t *value);
|
||||
|
||||
/** Return how much buffer space is needed by \c psasim_serialise_psa_key_agreement_iop_t()
|
||||
* to serialise a `psa_key_agreement_iop_t`.
|
||||
*
|
||||
* \param value The value that will be serialised into the buffer
|
||||
* (needed in case some serialisations are value-
|
||||
* dependent).
|
||||
*
|
||||
* \return The number of bytes needed in the buffer by
|
||||
* \c psasim_serialise_psa_key_agreement_iop_t() to serialise
|
||||
* the given value.
|
||||
*/
|
||||
size_t psasim_serialise_psa_key_agreement_iop_t_needs(
|
||||
psa_key_agreement_iop_t value);
|
||||
|
||||
/** Serialise a `psa_key_agreement_iop_t` into a buffer.
|
||||
*
|
||||
* \param pos[in,out] Pointer to a `uint8_t *` holding current position
|
||||
* in the buffer.
|
||||
* \param remaining[in,out] Pointer to a `size_t` holding number of bytes
|
||||
* remaining in the buffer.
|
||||
* \param value The value to serialise into the buffer.
|
||||
*
|
||||
* \return \c 1 on success ("okay"), \c 0 on error.
|
||||
*/
|
||||
int psasim_serialise_psa_key_agreement_iop_t(uint8_t **pos,
|
||||
size_t *remaining,
|
||||
psa_key_agreement_iop_t value);
|
||||
|
||||
/** Deserialise a `psa_key_agreement_iop_t` from a buffer.
|
||||
*
|
||||
* \param pos[in,out] Pointer to a `uint8_t *` holding current position
|
||||
* in the buffer.
|
||||
* \param remaining[in,out] Pointer to a `size_t` holding number of bytes
|
||||
* remaining in the buffer.
|
||||
* \param value Pointer to a `psa_key_agreement_iop_t` to receive the value
|
||||
* deserialised from the buffer.
|
||||
*
|
||||
* \return \c 1 on success ("okay"), \c 0 on error.
|
||||
*/
|
||||
int psasim_deserialise_psa_key_agreement_iop_t(uint8_t **pos,
|
||||
size_t *remaining,
|
||||
psa_key_agreement_iop_t *value);
|
||||
|
@ -48,7 +48,8 @@ my @types = qw(unsigned-int int size_t
|
||||
psa_key_derivation_operation_t
|
||||
psa_sign_hash_interruptible_operation_t
|
||||
psa_verify_hash_interruptible_operation_t
|
||||
mbedtls_svc_key_id_t);
|
||||
mbedtls_svc_key_id_t
|
||||
psa_key_agreement_iop_t);
|
||||
|
||||
grep(s/-/ /g, @types);
|
||||
|
||||
|
@ -163,6 +163,7 @@ def main():
|
||||
parser.add_argument('--include', '-I',
|
||||
action='append', default=['tf-psa-crypto/include',
|
||||
'tf-psa-crypto/drivers/builtin/include',
|
||||
'tf-psa-crypto/drivers/everest/include',
|
||||
'include'],
|
||||
help='Directory for header files')
|
||||
parser.add_argument('--keep-c',
|
||||
|
@ -835,7 +835,7 @@ psa_status_t mbedtls_test_wrap_psa_key_agreement_iop_abort(
|
||||
/* Wrapper for psa_key_agreement_iop_complete */
|
||||
psa_status_t mbedtls_test_wrap_psa_key_agreement_iop_complete(
|
||||
psa_key_agreement_iop_t *arg0_operation,
|
||||
psa_key_id_t *arg1_key)
|
||||
mbedtls_svc_key_id_t *arg1_key)
|
||||
{
|
||||
psa_status_t status = (psa_key_agreement_iop_complete)(arg0_operation, arg1_key);
|
||||
return status;
|
||||
@ -844,7 +844,7 @@ psa_status_t mbedtls_test_wrap_psa_key_agreement_iop_complete(
|
||||
/* Wrapper for psa_key_agreement_iop_setup */
|
||||
psa_status_t mbedtls_test_wrap_psa_key_agreement_iop_setup(
|
||||
psa_key_agreement_iop_t *arg0_operation,
|
||||
psa_key_id_t arg1_private_key,
|
||||
mbedtls_svc_key_id_t arg1_private_key,
|
||||
const uint8_t *arg2_peer_key,
|
||||
size_t arg3_peer_key_length,
|
||||
psa_algorithm_t arg4_alg,
|
||||
|
Reference in New Issue
Block a user