summaryrefslogtreecommitdiff
path: root/networking/tls_pstm_montgomery_reduce.c
AgeCommit message (Collapse)Author
2021-04-20tls: further reduce register pressure in i386 assemblyDenys Vlasenko
function old new delta pstm_montgomery_reduce 435 431 -4 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-04-20tls: reduce register pressure in i386 assembly (helps Android to compile)Denys Vlasenko
function old new delta pstm_montgomery_reduce 440 435 -5 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-05-17networking: cc is not a registerKhem Raj
gcc accepts __asm__ ( "" : : : "%cc"); but cc is not a real register and clang does not like it. networking/tls_pstm_montgomery_reduce.c:385:4: error: unknown register name '%cc' in asm | INNERMUL; | ^ The % syntax nominally goes before a register, in this case cc, like "memory" isn't a true register it's just a way of specifying that the condition code registers for the target are clobbered Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-01tls: pstm code shrinkDenys Vlasenko
Optimize ABI calling convention and "dead code" cases where return value is known to be always "success". function old new delta pstm_mod 113 1227 +1114 pstm_exptmod 1463 1532 +69 pstm_montgomery_reduce 381 393 +12 pstm_sqr_comba 478 487 +9 pstm_mul_comba 447 452 +5 der_binary_to_pstm 42 45 +3 pstm_count_bits 48 46 -2 pstm_clear 72 70 -2 pstm_clamp 57 55 -2 pstm_zero 38 34 -4 pstm_init_size 46 42 -4 pstm_init_for_read_unsigned_bin 24 20 -4 pstm_grow 72 68 -4 pstm_unsigned_bin_size 37 32 -5 pstm_cmp_mag 78 72 -6 pstm_copy 92 84 -8 pstm_mul_d 224 215 -9 pstm_rshd 104 94 -10 pstm_mul_2 156 146 -10 tls_handshake 2085 2072 -13 psRsaEncryptPub 421 408 -13 pstm_lshd 109 95 -14 pstm_cmp 54 39 -15 s_pstm_sub 228 212 -16 pstm_init_copy 72 52 -20 pstm_read_unsigned_bin 109 88 -21 pstm_mulmod 120 99 -21 s_pstm_add 337 314 -23 pstm_add 108 84 -24 pstm_mul_2d 186 161 -25 pstm_sub 102 74 -28 pstm_to_unsigned_bin 151 120 -31 pstm_set 34 - -34 pstm_div_2d 409 373 -36 pstm_init 42 - -42 pstm_exch 50 - -50 pstm_montgomery_setup 89 - -89 pstm_2expt 96 - -96 pstm_montgomery_calc_normalization 140 - -140 pstm_div 1522 - -1522 ------------------------------------------------------------------------------ (add/remove: 0/7 grow/shrink: 6/27 up/down: 1212/-2343) Total: -1131 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-07-15tls: remove last int16 local variables in pstm codeDenys Vlasenko
function old new delta pstm_mul_comba 439 447 +8 pstm_sqr_comba 475 478 +3 pstm_montgomery_reduce 399 381 -18 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/1 up/down: 11/-18) Total: -7 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-01-19tls: commented out psPool_t useDenys Vlasenko
function old new delta psAesEncrypt 159 162 +3 der_binary_to_pstm 42 40 -2 xwrite_and_hash 437 434 -3 xread_tls_block 446 443 -3 pstm_div_2d 449 444 -5 psAesDecrypt 179 174 -5 pstm_init_size 52 45 -7 pstm_init 46 39 -7 pstm_to_unsigned_bin 165 157 -8 tls_main 1265 1256 -9 pstm_mulmod 132 123 -9 pstm_mod 125 116 -9 pstm_init_copy 93 84 -9 psAesInitKey 840 825 -15 send_client_key_exchange 362 342 -20 psAesInit 103 80 -23 psRsaEncryptPub 429 403 -26 psAesDecryptBlock 1211 1184 -27 psAesEncryptBlock 1223 1193 -30 pstm_exptmod 1582 1524 -58 pstm_div 1557 1472 -85 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/20 up/down: 3/-360) Total: -357 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-01-15tls: rearrange code, add/improve comments, fix whitespace, no real changes hereDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2017-01-15tls: format and send CLIENT_KEY_EXCHANGEDenys Vlasenko
$ ./busybox tls kernel.org insize:0 tail:0 got block len:74 got HANDSHAKE got SERVER_HELLO insize:79 tail:4265 got block len:4392 got HANDSHAKE got CERTIFICATE entered der @0x8b217a7:0x30 len:1452 inner_byte @0x8b217ab:0x30 entered der @0x8b217ab:0x30 len:1172 inner_byte @0x8b217af:0xa0 skipped der 0xa0, next byte 0x02 skipped der 0x02, next byte 0x30 skipped der 0x30, next byte 0x30 skipped der 0x30, next byte 0x30 skipped der 0x30, next byte 0x30 skipped der 0x30, next byte 0x30 entered der @0x8b218b4:0x30 len:418 inner_byte @0x8b218b8:0x30 skipped der 0x30, next byte 0x03 entered der @0x8b218c7:0x03 len:399 inner_byte @0x8b218cb:0x00 key bytes:399, first:0x00 entered der @0x8b218cc:0x30 len:394 inner_byte @0x8b218d0:0x02 binary bytes:385, first:0x00 skipped der 0x02, next byte 0x02 binary bytes:3, first:0x01 server_rsa_pub_key.size:384 insize:4397 tail:9 got block len:4 got SERVER_HELLO_DONE insize:9 tail:0 ^C Next step: send CHANGE_CIPHER_SPEC... and actually implement it. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>