[openssl-commits] [openssl] master update

Andy Polyakov appro at openssl.org
Fri May 27 20:59:11 UTC 2016


The branch master has been updated
       via  bb83c8796b9e708a881f7c49a2af7921e73b2298 (commit)
      from  dae9e15d74df2f216b277c8887afe2976cba9c6e (commit)


- Log -----------------------------------------------------------------
commit bb83c8796b9e708a881f7c49a2af7921e73b2298
Author: Andy Polyakov <appro at openssl.org>
Date:   Thu May 26 21:40:09 2016 +0200

    bn/bn_exp.c: explain 'volatile' in MOD_EXP_CTIME_COPY_FROM_PREBUF.
    
    Reviewed-by: Tim Hudson <tjh at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 crypto/bn/bn_exp.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/crypto/bn/bn_exp.c b/crypto/bn/bn_exp.c
index 25c05fa..d334cf7 100644
--- a/crypto/bn/bn_exp.c
+++ b/crypto/bn/bn_exp.c
@@ -527,6 +527,14 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBUF(BIGNUM *b, int top,
 {
     int i, j;
     int width = 1 << window;
+    /*
+     * We declare table 'volatile' in order to discourage compiler
+     * from reordering loads from the table. Concern is that if
+     * reordered in specific manner loads might give away the
+     * information we are trying to conceal. Some would argue that
+     * compiler can reorder them anyway, but it can as well be
+     * argued that doing so would be violation of standard...
+     */
     volatile BN_ULONG *table = (volatile BN_ULONG *)buf;
 
     if (bn_wexpand(b, top) == NULL)


More information about the openssl-commits mailing list