diff --git a/tests/suites/test_suite_bignum_random.data b/tests/suites/test_suite_bignum_random.data
index b486f38..ee5e397 100644
--- a/tests/suites/test_suite_bignum_random.data
+++ b/tests/suites/test_suite_bignum_random.data
@@ -25,8 +25,11 @@
 MPI random legacy=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE)
 mpi_legacy_random_values:0x0fffffff:"10000001"
 
-MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE)
-mpi_mod_random_values:0x0fffffff:"10000001"
+MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) (Mont)
+mpi_mod_random_values:0x0fffffff:"10000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
+
+MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) (canon)
+mpi_mod_random_values:0x0fffffff:"10000001":MBEDTLS_MPI_MOD_REP_OPT_RED
 
 MPI core random basic: 2^29-1..2^29+1 (NOT_ACCEPTABLE)
 mpi_core_random_basic:0x1fffffff:"20000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
@@ -34,8 +37,11 @@
 MPI random legacy=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE)
 mpi_legacy_random_values:0x1fffffff:"20000001"
 
-MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE)
-mpi_mod_random_values:0x1fffffff:"20000001"
+MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) (Mont)
+mpi_mod_random_values:0x1fffffff:"20000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
+
+MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) (canon)
+mpi_mod_random_values:0x1fffffff:"20000001":MBEDTLS_MPI_MOD_REP_OPT_RED
 
 MPI core random basic: 2^30-1..2^30+1 (NOT_ACCEPTABLE)
 mpi_core_random_basic:0x3fffffff:"40000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
@@ -43,8 +49,11 @@
 MPI random legacy=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE)
 mpi_legacy_random_values:0x3fffffff:"40000001"
 
-MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE)
-mpi_mod_random_values:0x3fffffff:"40000001"
+MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) (Mont)
+mpi_mod_random_values:0x3fffffff:"40000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
+
+MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) (canon)
+mpi_mod_random_values:0x3fffffff:"40000001":MBEDTLS_MPI_MOD_REP_OPT_RED
 
 MPI core random basic: 2^31-1..2^31+1 (NOT_ACCEPTABLE)
 mpi_core_random_basic:0x7fffffff:"80000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
@@ -52,8 +61,11 @@
 MPI random legacy=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE)
 mpi_legacy_random_values:0x7fffffff:"80000001"
 
-MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE)
-mpi_mod_random_values:0x7fffffff:"80000001"
+MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) (Mont)
+mpi_mod_random_values:0x7fffffff:"80000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
+
+MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) (canon)
+mpi_mod_random_values:0x7fffffff:"80000001":MBEDTLS_MPI_MOD_REP_OPT_RED
 
 MPI random in range: 1..2
 mpi_random_many:1:"02":1000
@@ -246,23 +258,41 @@
 MPI random legacy=core: 0..2^256+1
 mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001"
 
-MPI random mod=core: 0..1
-mpi_mod_random_values:0:"01"
+MPI random mod=core: 0..1 (Mont)
+mpi_mod_random_values:0:"01":MBEDTLS_MPI_MOD_REP_MONTGOMERY
 
-MPI random mod=core: 0..3
-mpi_mod_random_values:0:"03"
+MPI random mod=core: 0..1 (canon)
+mpi_mod_random_values:0:"01":MBEDTLS_MPI_MOD_REP_OPT_RED
 
-MPI random mod=core: 1..3
-mpi_mod_random_values:1:"03"
+MPI random mod=core: 0..3 (Mont)
+mpi_mod_random_values:0:"03":MBEDTLS_MPI_MOD_REP_MONTGOMERY
 
-MPI random mod=core: 2^30..2^31-1
-mpi_mod_random_values:0x40000000:"7fffffff"
+MPI random mod=core: 0..3 (canon)
+mpi_mod_random_values:0:"03":MBEDTLS_MPI_MOD_REP_OPT_RED
 
-MPI random mod=core: 2^31-1..2^32-1
-mpi_mod_random_values:0x7fffffff:"ffffffff"
+MPI random mod=core: 1..3 (Mont)
+mpi_mod_random_values:1:"03":MBEDTLS_MPI_MOD_REP_MONTGOMERY
 
-MPI random mod=core: 0..2^256+1
-mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001"
+MPI random mod=core: 1..3 (canon)
+mpi_mod_random_values:1:"03":MBEDTLS_MPI_MOD_REP_OPT_RED
+
+MPI random mod=core: 2^30..2^31-1 (Mont)
+mpi_mod_random_values:0x40000000:"7fffffff":MBEDTLS_MPI_MOD_REP_MONTGOMERY
+
+MPI random mod=core: 2^30..2^31-1 (canon)
+mpi_mod_random_values:0x40000000:"7fffffff":MBEDTLS_MPI_MOD_REP_OPT_RED
+
+MPI random mod=core: 2^31-1..2^32-1 (Mont)
+mpi_mod_random_values:0x7fffffff:"ffffffff":MBEDTLS_MPI_MOD_REP_MONTGOMERY
+
+MPI random mod=core: 2^31-1..2^32-1 (canon)
+mpi_mod_random_values:0x7fffffff:"ffffffff":MBEDTLS_MPI_MOD_REP_OPT_RED
+
+MPI random mod=core: 0..2^256+1 (Mont)
+mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
+
+MPI random mod=core: 0..2^256+1 (canon)
+mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_REP_OPT_RED
 
 MPI random mod validation: 1 limb, good, 0..1
 mpi_mod_random_validation:0:"1":0:0
diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function
index 0f431cd..f2cb206 100644
--- a/tests/suites/test_suite_bignum_random.function
+++ b/tests/suites/test_suite_bignum_random.function
@@ -192,7 +192,7 @@
 /* END_CASE */
 
 /* BEGIN_CASE */
-void mpi_mod_random_values( int min, char *max_hex )
+void mpi_mod_random_values( int min, char *max_hex, int rep )
 {
     /* Same RNG as in mpi_core_random_basic */
     mbedtls_test_rnd_pseudo_info rnd_core = {
@@ -210,9 +210,7 @@
     mbedtls_mpi_mod_modulus N;
     mbedtls_mpi_mod_modulus_init( &N );
 
-    TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, max_hex,
-                                               MBEDTLS_MPI_MOD_REP_MONTGOMERY ),
-                0 );
+    TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, max_hex, rep ), 0 );
     ASSERT_ALLOC( R_core, N.limbs );
     ASSERT_ALLOC( R_mod_raw, N.limbs );
     ASSERT_ALLOC( R_mod_digits, N.limbs );
@@ -240,10 +238,12 @@
     TEST_EQUAL( core_ret, mod_ret );
     if( core_ret == 0 )
     {
-        TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( R_mod_raw, &N ), 0 );
+        TEST_EQUAL( mbedtls_mpi_mod_raw_modulus_to_canonical_rep( R_mod_raw, &N ),
+                    0 );
         ASSERT_COMPARE( R_core, N.limbs * ciL,
                         R_mod_raw, N.limbs * ciL );
-        TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( R_mod_digits, &N ), 0 );
+        TEST_EQUAL( mbedtls_mpi_mod_raw_modulus_to_canonical_rep( R_mod_digits, &N ),
+                    0 );
         ASSERT_COMPARE( R_core, N.limbs * ciL,
                         R_mod_digits, N.limbs * ciL );
     }
@@ -428,7 +428,7 @@
     mbedtls_mpi_mod_modulus_init( &N );
 
     TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, bound_hex,
-                                               MBEDTLS_MPI_MOD_REP_MONTGOMERY ),
+                                               MBEDTLS_MPI_MOD_REP_OPT_RED ),
                 0 );
     size_t result_limbs = N.limbs + result_limbs_delta;
     ASSERT_ALLOC( result_digits, result_limbs );
@@ -445,7 +445,6 @@
          * size as the modulus, otherwise it's a mistake in the test data. */
         TEST_EQUAL( result_limbs, N.limbs );
         /* Sanity check: check that the result is in range */
-        TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( result_digits, &N ), 0 );
         TEST_EQUAL( mbedtls_mpi_core_lt_ct( result_digits, N.p, N.limbs ),
                     1 );
         /* Check result >= min (changes result) */
@@ -463,7 +462,6 @@
                     expected_ret );
         if( expected_ret == 0 )
         {
-            TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( result_digits, &N ), 0 );
             TEST_EQUAL( mbedtls_mpi_core_lt_ct( result_digits, N.p, N.limbs ),
                         1 );
             TEST_EQUAL( mbedtls_mpi_core_sub_int( result_digits, result.p, min,
