Remove restriction on value of MBEDTLS_SSL_CID_PADDING_GRANULARITY
diff --git a/include/mbedtls/config.h b/include/mbedtls/config.h
index e7f42e5..2e1b982 100644
--- a/include/mbedtls/config.h
+++ b/include/mbedtls/config.h
@@ -3365,7 +3365,8 @@
  * Note: A value of \c 1 means that no padding will be used
  *       for outgoing records.
  *
- * The value MUST be a power of 2.
+ * Note: On systems lacking division instructions,
+ *       a power of two should be preferred.
  *
  */
 //#define MBEDTLS_SSL_CID_PADDING_GRANULARITY 16
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index d16ce01..428bab7 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -2013,9 +2013,9 @@
                                           uint8_t rec_type )
 {
     size_t len = *content_size;
-
-    /* MBEDTLS_SSL_CID_PADDING_GRANULARITY must be a power of 2. */
-    size_t pad = ~len & ( MBEDTLS_SSL_CID_PADDING_GRANULARITY - 1 );
+    size_t pad = ( MBEDTLS_SSL_CID_PADDING_GRANULARITY -
+                   ( len + 1 ) % MBEDTLS_SSL_CID_PADDING_GRANULARITY ) %
+        MBEDTLS_SSL_CID_PADDING_GRANULARITY;
 
     /* Write real content type */
     if( remaining == 0 )