- Added mpi_get_bit() and mpi_set_bit() individual bit setter/getter functions.


diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data
index 889f73d..87e095c 100644
--- a/tests/suites/test_suite_mpi.data
+++ b/tests/suites/test_suite_mpi.data
@@ -518,6 +518,33 @@
 Test mpi_is_prime #20
 mpi_is_prime:10:"49979687":0
 
+Test bit getting (Value bit 25)
+mpi_get_bit:10:"49979687":25:1
+
+Test bit getting (Larger but same limb)
+mpi_get_bit:10:"49979687":26:0
+
+Test bit getting (Larger and non-existing limb)
+mpi_get_bit:10:"49979687":500:0
+
+Test bit getting (Value bit 24)
+mpi_get_bit:10:"49979687":24:0
+
+Test bit getting (Value bit 23)
+mpi_get_bit:10:"49979687":23:1
+
+Test bit set (Change existing value with a 1)
+mpi_set_bit:10:"49979687":24:1:10:"66756903"
+
+Test bit set (Change existing value with a 0)
+mpi_set_bit:10:"49979687":25:0:10:"16425255"
+
+Test bit set (Add above existing limbs with a 0)
+mpi_set_bit:10:"49979687":80:0:10:"49979687"
+
+Test bit set (Add above existing limbs with a 1)
+mpi_set_bit:10:"49979687":80:1:10:"1208925819614629224685863"
+
 MPI Selftest
 depends_on:POLARSSL_SELF_TEST
 mpi_selftest:
diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function
index c31589e..905f1c3 100644
--- a/tests/suites/test_suite_mpi.function
+++ b/tests/suites/test_suite_mpi.function
@@ -143,6 +143,33 @@
 END_CASE
 
 BEGIN_CASE
+mpi_get_bit:radix_X:input_X:pos:val
+{
+    mpi X;
+    mpi_init( &X );
+    TEST_ASSERT( mpi_read_string( &X, {radix_X}, {input_X} ) == 0 );
+    TEST_ASSERT( mpi_get_bit( &X, {pos} ) == {val} );
+
+    mpi_free( &X );
+}
+END_CASE
+
+BEGIN_CASE
+mpi_set_bit:radix_X:input_X:pos:val:radix_Y:output_Y
+{
+    mpi X, Y;
+    mpi_init( &X ); mpi_init( &Y );
+
+    TEST_ASSERT( mpi_read_string( &X, {radix_X}, {input_X} ) == 0 );
+    TEST_ASSERT( mpi_read_string( &Y, {radix_Y}, {output_Y} ) == 0 );
+    TEST_ASSERT( mpi_set_bit( &X, {pos}, {val} ) == 0 );
+    TEST_ASSERT( mpi_cmp_mpi( &X, &Y ) == 0 );
+
+    mpi_free( &X );
+}
+END_CASE
+
+BEGIN_CASE
 mpi_lsb:radix_X:input_X:nr_bits
 {
     mpi X;