[git commit] tls: get rid of address obfuscation trick in P256

Denys Vlasenko vda.linux at googlemail.com
Mon Apr 26 12:40:21 UTC 2021


commit: https://git.busybox.net/busybox/commit/?id=166363f47d74a73a0a3ad1ebbb5aae00752ab8f7
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
addr_mask                                              8       -      -8
sp_256_ecc_mulmod_10                                1363    1330     -33
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-41)             Total: -41 bytes

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/tls_sp_c32.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/networking/tls_sp_c32.c b/networking/tls_sp_c32.c
index b4e14deac..87d44d5e0 100644
--- a/networking/tls_sp_c32.c
+++ b/networking/tls_sp_c32.c
@@ -72,9 +72,6 @@ static const sp_digit p256_mod[10] = {
 
 #define p256_mp_mod ((sp_digit)0x000001)
 
-/* Mask for address to obfuscate which of the two address will be used. */
-static const size_t addr_mask[2] = { 0, (size_t)-1 };
-
 /* The base point of curve P256. */
 static const sp_point p256_base = {
 	/* X ordinate */
@@ -831,14 +828,9 @@ static void sp_256_ecc_mulmod_10(sp_point* r, const sp_point* g, const sp_digit*
         n <<= 1;
 
         sp_256_proj_point_add_10(t[y^1], t[0], t[1], tmp);
-///FIXME type (or rewrite - get rid of t[] array)
-        memcpy(t[2], (void*)(((size_t)t[0] & addr_mask[y^1]) +
-                              ((size_t)t[1] & addr_mask[y])),
-                sizeof(sp_point));
+        memcpy(t[2], t[y], sizeof(sp_point));
         sp_256_proj_point_dbl_10(t[2], t[2], tmp);
-        memcpy((void*)(((size_t)t[0] & addr_mask[y^1]) +
-                        ((size_t)t[1] & addr_mask[y])), t[2],
-                sizeof(sp_point));
+        memcpy(t[y], t[2], sizeof(sp_point));
     }
 
     if (map)


More information about the busybox-cvs mailing list