diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2021-04-27 13:31:26 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2021-04-27 13:32:19 +0200 |
commit | 840ae696157ae271417953916de861e48a800e2b (patch) | |
tree | aaa547e449de4db70779a852d8340ed6a077e706 /networking/tls_sp_c32.c | |
parent | 646e85629497ee364e97101de4402d7141919144 (diff) | |
download | busybox-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.c | 36 |
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. |