aboutsummaryrefslogtreecommitdiff
path: root/networking/tls_sp_c32.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2021-04-27 13:31:26 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2021-04-27 13:32:19 +0200
commit840ae696157ae271417953916de861e48a800e2b (patch)
treeaaa547e449de4db70779a852d8340ed6a077e706 /networking/tls_sp_c32.c
parent646e85629497ee364e97101de4402d7141919144 (diff)
downloadbusybox-w32-840ae696157ae271417953916de861e48a800e2b.tar.gz
busybox-w32-840ae696157ae271417953916de861e48a800e2b.tar.bz2
busybox-w32-840ae696157ae271417953916de861e48a800e2b.zip
tls: shrink sp_256_mod_mul_norm_10 more
function old new delta sp_256_mod_mul_norm_10 1439 1305 -134 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/tls_sp_c32.c')
-rw-r--r--networking/tls_sp_c32.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/networking/tls_sp_c32.c b/networking/tls_sp_c32.c
index c5e887aad..2b1ae1496 100644
--- a/networking/tls_sp_c32.c
+++ b/networking/tls_sp_c32.c
@@ -557,24 +557,24 @@ static void sp_256_mod_mul_norm_10(sp_digit* r, const sp_digit* a)
557 t[3] -= o; 557 t[3] -= o;
558 t[6] -= o; 558 t[6] -= o;
559 t[7] += o; 559 t[7] += o;
560 t[1] += t[0] >> 32; t[0] &= 0xffffffff; 560 t[1] += t[0] >> 32; //t[0] &= 0xffffffff;
561 t[2] += t[1] >> 32; t[1] &= 0xffffffff; 561 t[2] += t[1] >> 32; //t[1] &= 0xffffffff;
562 t[3] += t[2] >> 32; t[2] &= 0xffffffff; 562 t[3] += t[2] >> 32; //t[2] &= 0xffffffff;
563 t[4] += t[3] >> 32; t[3] &= 0xffffffff; 563 t[4] += t[3] >> 32; //t[3] &= 0xffffffff;
564 t[5] += t[4] >> 32; t[4] &= 0xffffffff; 564 t[5] += t[4] >> 32; //t[4] &= 0xffffffff;
565 t[6] += t[5] >> 32; t[5] &= 0xffffffff; 565 t[6] += t[5] >> 32; //t[5] &= 0xffffffff;
566 t[7] += t[6] >> 32; t[6] &= 0xffffffff; 566 t[7] += t[6] >> 32; //t[6] &= 0xffffffff; - (uint32_t)t[i] casts below accomplish masking
567 567
568 r[0] = 0x3ffffff & ((sp_digit)(t[0])); 568 r[0] = 0x3ffffff & ((sp_digit)((uint32_t)t[0]));
569 r[1] = 0x3ffffff & ((sp_digit)(t[0] >> 26) | ((sp_digit)t[1] << 6)); 569 r[1] = 0x3ffffff & ((sp_digit)((uint32_t)t[0] >> 26) | ((sp_digit)t[1] << 6));
570 r[2] = 0x3ffffff & ((sp_digit)(t[1] >> 20) | ((sp_digit)t[2] << 12)); 570 r[2] = 0x3ffffff & ((sp_digit)((uint32_t)t[1] >> 20) | ((sp_digit)t[2] << 12));
571 r[3] = 0x3ffffff & ((sp_digit)(t[2] >> 14) | ((sp_digit)t[3] << 18)); 571 r[3] = 0x3ffffff & ((sp_digit)((uint32_t)t[2] >> 14) | ((sp_digit)t[3] << 18));
572 r[4] = 0x3ffffff & ((sp_digit)(t[3] >> 8) | ((sp_digit)t[4] << 24)); 572 r[4] = 0x3ffffff & ((sp_digit)((uint32_t)t[3] >> 8) | ((sp_digit)t[4] << 24));
573 r[5] = 0x3ffffff & ((sp_digit)t[4] >> 2); /* small shift, ok to cast t[4] to narrower type */ 573 r[5] = 0x3ffffff & ((sp_digit)((uint32_t)t[4] >> 2));
574 r[6] = 0x3ffffff & ((sp_digit)(t[4] >> 28) | ((sp_digit)t[5] << 4)); 574 r[6] = 0x3ffffff & ((sp_digit)((uint32_t)t[4] >> 28) | ((sp_digit)t[5] << 4));
575 r[7] = 0x3ffffff & ((sp_digit)(t[5] >> 22) | ((sp_digit)t[6] << 10)); 575 r[7] = 0x3ffffff & ((sp_digit)((uint32_t)t[5] >> 22) | ((sp_digit)t[6] << 10));
576 r[8] = 0x3ffffff & ((sp_digit)(t[6] >> 16) | ((sp_digit)t[7] << 16)); 576 r[8] = 0x3ffffff & ((sp_digit)((uint32_t)t[6] >> 16) | ((sp_digit)t[7] << 16));
577 r[9] = ((sp_digit)(t[7] >> 10)); 577 r[9] = ((sp_digit)((uint32_t)t[7] >> 10));
578} 578}
579 579
580/* Map the Montgomery form projective co-ordinate point to an affine point. 580/* Map the Montgomery form projective co-ordinate point to an affine point.