Add psa_key_agreement_iop_abort() documentation
Signed-off-by: Paul Elliott <paul.elliott@arm.com>
diff --git a/tf-psa-crypto/core/psa_crypto_ecp.c b/tf-psa-crypto/core/psa_crypto_ecp.c
index 948e146..096bc11 100644
--- a/tf-psa-crypto/core/psa_crypto_ecp.c
+++ b/tf-psa-crypto/core/psa_crypto_ecp.c
@@ -631,4 +631,11 @@
return PSA_SUCCESS;
}
+psa_status_t psa_key_agreement_iop_abort(
+ psa_key_agreement_iop_t *operation)
+{
+ (void) operation;
+
+ return PSA_SUCCESS;
+}
#endif /* MBEDTLS_PSA_CRYPTO_C */
diff --git a/tf-psa-crypto/include/psa/crypto.h b/tf-psa-crypto/include/psa/crypto.h
index 7ec865a..eaac358 100644
--- a/tf-psa-crypto/include/psa/crypto.h
+++ b/tf-psa-crypto/include/psa/crypto.h
@@ -5117,6 +5117,47 @@
psa_key_agreement_iop_t *operation,
psa_key_id_t *key);
+/**
+ * \brief Abort a key agreement operation.
+ *
+ * \warning This is a beta API, and thus subject to change
+ * at any point. It is not bound by the usual
+ * interface stability promises.
+ *
+ * \note This function is the only function that clears
+ * the number of ops completed as part of the
+ * operation. Please ensure you copy this value via
+ * \c psa_key_agreement_iop_get_num_ops() if
+ * required before calling.
+ *
+ * \note Aborting an operation frees all
+ * associated resources except for the operation
+ * structure itself. Once aborted, the operation
+ * object can be reused for another operation by
+ * calling \c psa_key_agreement_iop_setup() again.
+ *
+ * \note You may call this function any time after the
+ * operation object has been initialized.
+ * In particular, calling \c
+ * psa_key_agreement_iop_abort() after the
+ * operation has already been terminated by a call
+ * to \c psa_key_agreement_iop_abort() or
+ * psa_key_agreement_iop_complete() is safe.
+ *
+ * \param[in,out] operation The \c psa_key_agreement_iop_t to use
+ *
+ * \retval #PSA_SUCCESS
+ * The operation was aborted successfully.
+ *
+ * \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
+ * \retval #PSA_ERROR_BAD_STATE
+ * The library has not been previously initialized by
+ * \c psa_crypto_init(). It is implementation-dependent whether a
+ * failure to initialize results in this error code.
+ */
+psa_status_t psa_key_agreement_iop_abort(
+ psa_key_agreement_iop_t *operation);
+
/**@}*/
#ifdef __cplusplus