diff --git a/include/mbedtls/ecjpake.h b/include/mbedtls/ecjpake.h
index 9cad2e0..2f1a8ab 100644
--- a/include/mbedtls/ecjpake.h
+++ b/include/mbedtls/ecjpake.h
@@ -31,7 +31,7 @@
 #endif
 
 typedef enum {
-    MBEDTLS_ECJPAKE_CLIENT,
+    MBEDTLS_ECJPAKE_CLIENT = 0,
     MBEDTLS_ECJPAKE_SERVER,
 } mbedtls_ecjpake_role;
 
diff --git a/library/ecjpake.c b/library/ecjpake.c
index 63de6e6..84dce04 100644
--- a/library/ecjpake.c
+++ b/library/ecjpake.c
@@ -37,6 +37,17 @@
 #include <string.h>
 
 /*
+ * Convert a mbedtls_ecjpake_role to identifier string
+ */
+static const char * const ecjpake_id[] = {
+    "client",
+    "server"
+};
+
+#define ID_MINE     ( ecjpake_id[ ctx->role ] )
+#define ID_PEER     ( ecjpake_id[ 1 - ctx->role ] )
+
+/*
  * Initialize context
  */
 void mbedtls_ecjpake_init( mbedtls_ecjpake_context *ctx )
@@ -460,7 +471,7 @@
                                          size_t len )
 {
     return( ecjpake_kkpp_read( ctx->md_info, &ctx->grp, &ctx->grp.G,
-                               &ctx->X1, &ctx->X2, "client",
+                               &ctx->X1, &ctx->X2, ID_PEER,
                                buf, len ) );
 }
 
@@ -472,7 +483,7 @@
                                          size_t len )
 {
     return( ecjpake_kkpp_read( ctx->md_info, &ctx->grp, &ctx->grp.G,
-                               &ctx->X3, &ctx->X4, "server",
+                               &ctx->X3, &ctx->X4, ID_PEER,
                                buf, len ) );
 }
 
@@ -486,7 +497,7 @@
 {
     return( ecjpake_kkpp_write( ctx->md_info, &ctx->grp, &ctx->grp.G,
                                 &ctx->xa, &ctx->X1, &ctx->xb, &ctx->X2,
-                                "client", buf, len, olen, f_rng, p_rng ) );
+                                ID_MINE, buf, len, olen, f_rng, p_rng ) );
 }
 
 /*
@@ -499,7 +510,7 @@
 {
     return( ecjpake_kkpp_write( ctx->md_info, &ctx->grp, &ctx->grp.G,
                                 &ctx->xa, &ctx->X3, &ctx->xb, &ctx->X4,
-                                "server", buf, len, olen, f_rng, p_rng ) );
+                                ID_MINE, buf, len, olen, f_rng, p_rng ) );
 }
 
 /*
@@ -556,7 +567,7 @@
      */
     MBEDTLS_MPI_CHK( mbedtls_ecp_tls_read_group( &grp, &p, len ) );
     MBEDTLS_MPI_CHK( ecjpake_kkp_read( ctx->md_info, &ctx->grp,
-                            &GB, &ctx->Xp, "server", &p, end ) );
+                            &GB, &ctx->Xp, ID_PEER, &p, end ) );
 
     if( p != end )
     {
@@ -632,7 +643,7 @@
     p += ec_len;
 
     MBEDTLS_MPI_CHK( ecjpake_zkp_write( ctx->md_info, &ctx->grp,
-                                        &GB, &xs, &Xs, "server",
+                                        &GB, &xs, &Xs, ID_MINE,
                                         &p, end, f_rng, p_rng ) );
 
     *olen = p - buf;
@@ -674,7 +685,7 @@
      * } CLientECJPAKEParams;
      */
     MBEDTLS_MPI_CHK( ecjpake_kkp_read( ctx->md_info, &ctx->grp,
-                            &GA, &ctx->Xp, "client", &p, end ) );
+                            &GA, &ctx->Xp, ID_PEER, &p, end ) );
 
     if( p != end )
     {
@@ -732,7 +743,7 @@
     p += ec_len;
 
     MBEDTLS_MPI_CHK( ecjpake_zkp_write( ctx->md_info, &ctx->grp,
-                                        &GA, &xc, &Xc, "client",
+                                        &GA, &xc, &Xc, ID_MINE,
                                         &p, end, f_rng, p_rng ) );
 
     *olen = p - buf;
@@ -798,6 +809,10 @@
     return( ret );
 }
 
+#undef ID_MINE
+#undef ID_PEER
+
+
 #if defined(MBEDTLS_SELF_TEST)
 
 #if defined(MBEDTLS_PLATFORM_C)
