Optimize code (pake role type, freeing buffers)

Signed-off-by: Przemek Stekiel <przemyslaw.stekiel@mobica.com>
diff --git a/include/mbedtls/ecjpake.h b/include/mbedtls/ecjpake.h
index 94864fa..0008d73 100644
--- a/include/mbedtls/ecjpake.h
+++ b/include/mbedtls/ecjpake.h
@@ -52,9 +52,9 @@
  * Roles in the EC J-PAKE exchange
  */
 typedef enum {
-    MBEDTLS_ECJPAKE_NONE = 0,           /**< Undefined                      */
-    MBEDTLS_ECJPAKE_CLIENT,             /**< Client                         */
+    MBEDTLS_ECJPAKE_CLIENT = 0,         /**< Client                         */
     MBEDTLS_ECJPAKE_SERVER,             /**< Server                         */
+    MBEDTLS_ECJPAKE_NONE,               /**< Undefined                      */
 } mbedtls_ecjpake_role;
 
 #if !defined(MBEDTLS_ECJPAKE_ALT)
diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c
index d9b2ecd..4136614 100644
--- a/library/psa_crypto_pake.c
+++ b/library/psa_crypto_pake.c
@@ -289,9 +289,6 @@
             goto error;
         }
 
-        /* Role has been set, release user/peer buffers. */
-        mbedtls_free(user); mbedtls_free(peer);
-
         operation->buffer_length = 0;
         operation->buffer_offset = 0;
 
@@ -300,6 +297,9 @@
             goto error;
         }
 
+        /* Role has been set, release user/peer buffers. */
+        mbedtls_free(user); mbedtls_free(peer);
+
         return PSA_SUCCESS;
     } else
 #else