diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index dea2a36..767dbfc 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -7400,7 +7400,7 @@
         goto exit;
     }
 
-    if (operation->data.inputs.peer_len != 0) {
+    if (operation->data.inputs.user_len != 0) {
         status = PSA_ERROR_BAD_STATE;
         goto exit;
     }
@@ -7412,14 +7412,14 @@
         goto exit;
     }
 
-    operation->data.inputs.peer = mbedtls_calloc(1, peer_id_len);
-    if (operation->data.inputs.peer == NULL) {
+    operation->data.inputs.user = mbedtls_calloc(1, user_id_len);
+    if (operation->data.inputs.user == NULL) {
         status = PSA_ERROR_INSUFFICIENT_MEMORY;
         goto exit;
     }
 
-    memcpy(operation->data.inputs.peer, peer_id, peer_id_len);
-    operation->data.inputs.peer_len = peer_id_len;
+    memcpy(operation->data.inputs.user, user_id, user_id_len);
+    operation->data.inputs.user_len = user_id_len;
 
     return PSA_SUCCESS;
 exit:
@@ -7444,7 +7444,7 @@
         goto exit;
     }
 
-    if (operation->data.inputs.user_len != 0) {
+    if (operation->data.inputs.peer_len != 0) {
         status = PSA_ERROR_BAD_STATE;
         goto exit;
     }
@@ -7456,14 +7456,14 @@
         goto exit;
     }
 
-    operation->data.inputs.user = mbedtls_calloc(1, user_id_len);
-    if (operation->data.inputs.user == NULL) {
+    operation->data.inputs.peer = mbedtls_calloc(1, peer_id_len);
+    if (operation->data.inputs.peer == NULL) {
         status = PSA_ERROR_INSUFFICIENT_MEMORY;
         goto exit;
     }
 
-    memcpy(operation->data.inputs.user, user_id, user_id_len);
-    operation->data.inputs.user_len = user_id_len;
+    memcpy(operation->data.inputs.peer, peer_id, peer_id_len);
+    operation->data.inputs.peer_len = peer_id_len;
 
     return PSA_SUCCESS;
 exit:
