diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h
index cbf90cc..ea3cfd8 100644
--- a/include/psa/crypto_extra.h
+++ b/include/psa/crypto_extra.h
@@ -1347,45 +1347,45 @@
     const psa_crypto_driver_pake_inputs_t *inputs,
     psa_pake_role_t *role);
 
-/** Get the lengths of the user in bytes from given inputs.
+/** Get the lengths of the user id in bytes from given inputs.
  *
  * \param[in]  inputs           Operation inputs.
- * \param[out] user_len         Return buffer for user length.
+ * \param[out] user_len         Return buffer for user id length.
  *
  * \retval #PSA_SUCCESS
  *         Success.
  * \retval #PSA_ERROR_BAD_STATE
- *         User hasn't been set yet.
+ *         User id hasn't been set yet.
  */
 psa_status_t psa_crypto_driver_pake_get_user_len(
     const psa_crypto_driver_pake_inputs_t *inputs,
     size_t *user_len);
 
-/** Get the lengths of the peer in bytes from given inputs.
+/** Get the lengths of the peer id in bytes from given inputs.
  *
  * \param[in]  inputs           Operation inputs.
- * \param[out] peer_len         Return buffer for peer length.
+ * \param[out] peer_len         Return buffer for peer id length.
  *
  * \retval #PSA_SUCCESS
  *         Success.
  * \retval #PSA_ERROR_BAD_STATE
- *         Peer hasn't been set yet.
+ *         Peer id hasn't been set yet.
  */
 psa_status_t psa_crypto_driver_pake_get_peer_len(
     const psa_crypto_driver_pake_inputs_t *inputs,
     size_t *peer_len);
 
-/** Get the user from given inputs.
+/** Get the user id from given inputs.
  *
  * \param[in]  inputs           Operation inputs.
- * \param[out] buffer           Return buffer for user.
+ * \param[out] buffer           Return buffer for user id.
  * \param      buffer_size      Size of the return buffer in bytes.
  * \param[out] buffer_length    Actual size of the password in bytes.
  *
  * \retval #PSA_SUCCESS
  *         Success.
  * \retval #PSA_ERROR_BAD_STATE
- *         User hasn't been set yet.
+ *         User id hasn't been set yet.
  * \retval #PSA_ERROR_BUFFER_TOO_SMALL
  *         The size of the \p buffer is too small.
  */
@@ -1393,17 +1393,17 @@
     const psa_crypto_driver_pake_inputs_t *inputs,
     uint8_t *buffer, size_t buffer_size, size_t *buffer_length);
 
-/** Get the peer from given inputs.
+/** Get the peer id from given inputs.
  *
  * \param[in]  inputs           Operation inputs.
- * \param[out] buffer           Return buffer for user.
+ * \param[out] buffer           Return buffer for user id.
  * \param      buffer_size      Size of the return buffer in bytes.
  * \param[out] buffer_length    Actual size of the password in bytes.
  *
  * \retval #PSA_SUCCESS
  *         Success.
  * \retval #PSA_ERROR_BAD_STATE
- *         Peer hasn't been set yet.
+ *         Peer id hasn't been set yet.
  * \retval #PSA_ERROR_BUFFER_TOO_SMALL
  *         The size of the \p buffer is too small.
  */
