summaryrefslogtreecommitdiff
path: root/networking
Commit message (Collapse)AuthorAgeFilesLines
* httpd: fix compile failure if !FEATURE_HTTPD_RANGESDenys Vlasenko2021-12-261-0/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: do not send Last-Modified / ETag / Content-Length for error pagesDenys Vlasenko2021-12-171-20/+14
| | | | | | | | function old new delta send_headers 713 701 -12 send_headers_and_exit 20 34 +14 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: don't send Content-Length in error pages headerDenys Vlasenko2021-12-171-14/+21
| | | | | | | function old new delta send_headers 701 713 +12 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* udhcpc6: fix udhcp_find_option to actually find DHCP6 optionsDenys Vlasenko2021-12-125-14/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | udhcp_insert_new_option treats code for IPv6 as follows: new->data[D6_OPT_CODE] = code >> 8; new->data[D6_OPT_CODE + 1] = code & 0xff; udhcp_find_option tests the code as follows: while (opt_list && opt_list->data[OPT_CODE] < code) ... if (opt_list && opt_list->data[OPT_CODE] == code) So yes, OPT_CODE and D6_OPT_CODE are both 0, but the D6_OPT_CLIENTID = 1 value means that the 1 is in the seconds byte, and udhcp_find_option is only looking at the first byte, So the send_d6_release can never find it the created option. function old new delta udhcp_find_option 28 53 +25 attach_option 276 284 +8 udhcpc6_main 2602 2607 +5 perform_d6_release 262 267 +5 udhcpd_main 1518 1520 +2 udhcpc_main 2542 2544 +2 add_serverid_and_clientid_options 46 48 +2 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 7/0 up/down: 49/0) Total: 49 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* wget: allow end-users to customize Content-Type for --post-data and --post-fileIldar Shaimordanov2021-12-121-13/+22
| | | | | | | | | | | | | | | | | | More explanation in this PR: https://github.com/rmyorston/busybox-w32/pull/233 The real use-case: wget https://api.github.com/markdown/raw --header "Content-Type: text/plain" function old new delta wget_main 2560 2581 +21 wget_user_headers 62 76 +14 .rodata 104196 104197 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/0 up/down: 36/0) Total: 36 bytes Signed-off-by: Ildar Shaimordanov <ildar.shaimordanov@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: factor out "multiply then reduce" operationDenys Vlasenko2021-12-111-7/+13
| | | | | | | | | | function old new delta sp_256_mont_mul_and_reduce_8 - 44 +44 sp_256_ecc_mulmod_8 517 442 -75 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/1 up/down: 44/-75) Total: -31 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: x25519: code shrink by factoring out common codeDenys Vlasenko2021-12-011-47/+21
| | | | | | | | | | | | | | function old new delta fe_reduce - 37 +37 lm_add 67 43 -24 fe_mul_c 62 38 -24 fe_mul__distinct 138 112 -26 curve25519 800 767 -33 lm_sub 98 64 -34 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/5 up/down: 37/-141) Total: -104 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: enable 64-bit version of montgomery reductionDenys Vlasenko2021-11-281-7/+8
| | | | | | | | | | After more testing, (1) I'm more sure it is indeed correct, and (2) it is a significant speedup - we do a lot of those multiplications. function old new delta sp_512to256_mont_reduce_8 191 223 +32 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: add 64-bit montgomery reduce (disabled), small optimization in ↵Denys Vlasenko2021-11-281-18/+159
| | | | | | | | | 32-bit code function old new delta sp_512to256_mont_reduce_8 191 185 -6 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: add comment on logic in sp_512to256_mont_reduce_8, no code changesDenys Vlasenko2021-11-281-10/+23
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: simplify sp_256_mont_inv_8 (no need for a temporary)Denys Vlasenko2021-11-281-6/+4
| | | | | | | function old new delta sp_256_ecc_mulmod_8 543 517 -26 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: pad struct sp_point to 64 bits (on 64-bit arches)Denys Vlasenko2021-11-281-5/+9
| | | | | | | function old new delta curve_P256_compute_pubkey_and_premaster 198 190 -8 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: trivial x86-64 fixDenys Vlasenko2021-11-271-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: change logic so that we don't need double-wide vectors everywhereDenys Vlasenko2021-11-271-106/+72
| | | | | | | | | | | | | | | | | | | | | | | | | Change sp_256to512z_mont_{mul,sqr}_8 to not require/zero upper 256 bits. There is only one place where we actually used that (and that's why there used to be zeroing memset of top half!). Fix up that place. As a bonus, 256x256->512 multiply no longer needs to care for "r overlaps a or b" case. This shrinks sp_point structure as well, not just temporaries. function old new delta sp_256to512z_mont_mul_8 150 - -150 sp_256_mont_mul_8 - 147 +147 sp_256to512z_mont_sqr_8 7 - -7 sp_256_mont_sqr_8 - 7 +7 sp_256_ecc_mulmod_8 494 543 +49 sp_512to256_mont_reduce_8 243 249 +6 sp_256_point_from_bin2x32 73 70 -3 sp_256_proj_point_dbl_8 353 345 -8 sp_256_proj_point_add_8 544 499 -45 ------------------------------------------------------------------------------ (add/remove: 2/2 grow/shrink: 2/3 up/down: 209/-213) Total: -4 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: do not open-code copying of struct variablesDenys Vlasenko2021-11-271-1/+3
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: fix sp_256_div2_8 - it wouldn't use a[] if low bit is 0Denys Vlasenko2021-11-271-5/+7
| | | | | | | | It worked by chance because the only caller passed both parameters as two pointers to the same array. My fault (I made this error when converting from 26-bit code). Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: remove redundant zeroing in sp_256_map_8Denys Vlasenko2021-11-271-2/+0
| | | | | | | | | Previous change made it obvious that we zero out already-zeroed high bits function old new delta sp_256_ecc_mulmod_8 534 494 -40 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: explain which functions use double-wide arrays, no code changesDenys Vlasenko2021-11-271-153/+58
| | | | | | | | | | | | | | function old new delta sp_512to256_mont_reduce_8 - 243 +243 sp_256to512z_mont_mul_8 - 150 +150 sp_256to512z_mont_sqr_8 - 7 +7 sp_256_mont_sqr_8 7 - -7 sp_256_mont_mul_8 150 - -150 sp_256_mont_reduce_8 243 - -243 ------------------------------------------------------------------------------ (add/remove: 3/3 grow/shrink: 0/0 up/down: 400/-400) Total: 0 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: remove constant-time trick in sp_256_proj_point_add_8Denys Vlasenko2021-11-271-42/+37
| | | | | | | function old new delta sp_256_proj_point_add_8 576 544 -32 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: do not open-code copying of struct variablesDenys Vlasenko2021-11-271-2/+2
| | | | | | | function old new delta sp_256_ecc_mulmod_8 536 534 -2 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: tweak debug printoutDenys Vlasenko2021-11-271-1/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: 64-bit optimizationsDenys Vlasenko2021-11-271-15/+99
| | | | | | | | | | | | function old new delta sp_256_proj_point_dbl_8 421 428 +7 sp_256_point_from_bin2x32 78 84 +6 sp_256_cmp_8 38 42 +4 sp_256_to_bin_8 28 31 +3 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 20/0) Total: 20 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* config system: move some options closer to relevalnt tool subdirectoriesDenys Vlasenko2021-10-121-0/+26
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* whitespace fixDenys Vlasenko2021-10-111-1/+0
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: code shrink curve25519Denys Vlasenko2021-10-111-15/+39
| | | | | | | | | | function old new delta fe_select 39 - -39 curve25519 849 800 -49 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-88) Total: -88 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: remove unused tls_symmetric.h (was used by old "big" AES code)Denys Vlasenko2021-10-112-512/+0
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: add NOINLINEs where code noticeably shrinksDenys Vlasenko2021-10-104-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | function old new delta display 85 1463 +1378 -73 bytes select_and_cluster - 1088 +1088 -139 bytes parse_reply - 979 +979 -109 bytes zbc_num_sqrt - 632 +632 -191 bytes show_bridge_port - 585 +585 -56 bytes sp_256_proj_point_add_8 - 576 +576 -45 bytes encode_then_append_var_plusminus - 554 +554 -118 bytes read_mode_db - 537 +537 -47 bytes fbset_main 1331 747 -584 sp_256_ecc_mulmod_8 1157 536 -621 brctl_main 2189 1548 -641 expand_one_var 2544 1872 -672 zxc_vm_process 6412 5589 -823 send_queries 1813 725 -1088 recv_and_process_peer_pkt 2245 1018 -1227 bb_dump_dump 1531 80 -1451 ------------------------------------------------------------------------------ (add/remove: 7/0 grow/shrink: 1/8 up/down: 6329/-7107) Total: -778 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: if range is not specified, correctly fall back to read/write loopDenys Vlasenko2021-10-081-2/+5
| | | | | | | | | | | range_start was staying -1, and comparison meant to detect "is it the first sendfile that failed, or not the first?" was making incorrect decision. The result: nothing is sent. function old new delta send_file_and_exit 865 877 +12 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* help: s/Don't daemonize/Run in foreground/gDenys Vlasenko2021-10-083-3/+3
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ip: added support for setting netns on devicesNicholas Niro2021-10-072-3/+34
| | | | | | | | | | | | | function old new delta set_netns - 130 +130 do_iplink 1252 1315 +63 .rodata 104173 104179 +6 packed_usage 34020 33993 -27 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 2/1 up/down: 199/-27) Total: 172 bytes Signed-off-by: Nicholas Niro <blowfist@xroutine.net> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: whitespace fixDenys Vlasenko2021-10-061-3/+3
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: sp_256_sub_8_p256_mod always subtracts in-place, use thatDenys Vlasenko2021-10-061-63/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | i386: function old new delta sp_256_mont_reduce_8 245 243 -2 sp_256_mont_dbl_8 26 24 -2 sp_256_ecc_mulmod_8 1161 1157 -4 sp_256_proj_point_dbl_8 359 353 -6 sp_256_sub_8_p256_mod 71 32 -39 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/5 up/down: 0/-53) Total: -53 bytes non-asm code: function old new delta sp_256_sub_8_p256_mod - 12 +12 sp_256_mont_reduce_8 250 243 -7 sp_256_mont_dbl_8 31 24 -7 sp_256_ecc_mulmod_8 1171 1157 -14 sp_256_proj_point_dbl_8 374 353 -21 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/4 up/down: 12/-49) Total: -37 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: x86-64 optimized sp_256_sub_8_p256_modDenys Vlasenko2021-10-061-1/+31
| | | | | | | | | | | | | function old new delta sp_256_sub_8_p256_mod - 53 +53 sp_256_mont_reduce_8 223 217 -6 sp_256_mont_dbl_8 38 32 -6 sp_256_ecc_mulmod_8 1535 1529 -6 sp_256_proj_point_dbl_8 469 454 -15 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/4 up/down: 53/-33) Total: 20 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: x86-64 assemblyDenys Vlasenko2021-10-061-0/+99
| | | | | | | | | | | | | | function old new delta sp_256_mont_mul_8 127 155 +28 sp_256_proj_point_dbl_8 448 469 +21 sp_256_mont_sub_8 23 35 +12 sp_256_mont_dbl_8 26 38 +12 sp_256_sub_8 44 49 +5 sp_256_ecc_mulmod_8 1530 1535 +5 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 6/0 up/down: 83/0) Total: 83 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: tweak arm assembly (currently disabled)Denys Vlasenko2021-10-061-88/+89
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P@256: remove "header comment is kept intact" commentDenys Vlasenko2021-10-061-1/+0
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: do not dumplicate sp_256_sub_8()Denys Vlasenko2021-10-061-23/+3
| | | | | | | | | | | | | function old new delta sp_256_proj_point_dbl_8 359 374 +15 sp_256_ecc_mulmod_8 1159 1171 +12 sp_256_mont_reduce_8 245 250 +5 sp_256_mont_dbl_8 26 31 +5 sp_256_sub_8_p256_mod 43 - -43 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 4/0 up/down: 37/-43) Total: -6 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: shrink sp_256_mul_add_8 a bit moreDenys Vlasenko2021-10-061-14/+24
| | | | | | | function old new delta sp_256_mont_reduce_8 257 245 -12 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256: propagate constants, create dedicated "subtract p256_mod" functionDenys Vlasenko2021-10-061-32/+108
| | | | | | | | | | | | | | | | | | 8 instances of this subtraction probably warrant a few bytes more of code. function old new delta sp_256_sub_8_p256_mod - 71 +71 sp_256_mont_sub_8 - 29 +29 sp_256_mont_dbl_8 - 26 +26 sp_256_mont_reduce_8 262 257 -5 sp_256_ecc_mulmod_8 1171 1161 -10 sp_256_proj_point_dbl_8 374 359 -15 static.sp_256_mont_sub_8 29 - -29 static.sp_256_mont_dbl_8 31 - -31 ------------------------------------------------------------------------------ (add/remove: 3/2 grow/shrink: 0/3 up/down: 126/-90) Total: 36 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: optimize sp_256_mont_reduce_8 in P256Denys Vlasenko2021-10-061-21/+125
| | | | | | | | | The code size decrease is small, but we eliminate ALL multiplies! function old new delta sp_256_mont_reduce_8 268 262 -6 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: optimize sp_256_mul_8 in P256Denys Vlasenko2021-10-051-2/+82
| | | | | | | function old new delta sp_256_mont_mul_8 151 150 -1 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: replace "26-bit" P256 code with 32-bit one.Denys Vlasenko2021-10-052-498/+588
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta sp_256_ecc_mulmod_8 - 1171 +1171 sp_256_mod_mul_norm_8 - 834 +834 sp_256_proj_point_dbl_8 - 374 +374 sp_256_mont_reduce_8 - 268 +268 sp_256_mont_mul_8 - 151 +151 sp_256_sub_8 - 76 +76 sp_256_add_8 - 76 +76 sp_256_cmp_8 - 38 +38 static.sp_256_mont_dbl_8 - 31 +31 static.sp_256_mont_sub_8 - 29 +29 sp_256_to_bin_8 - 28 +28 sp_256_point_from_bin2x32 50 73 +23 sp_256_mont_sqr_8 - 7 +7 sp_256_mont_sqr_10 7 - -7 p256_mod 40 32 -8 curve_P256_compute_pubkey_and_premaster 186 167 -19 sp_256_sub_10 22 - -22 sp_256_add_10 22 - -22 sp_256_cmp_10 24 - -24 sp_256_norm_10 31 - -31 static.sp_256_mont_sub_10 49 - -49 static.sp_256_mont_dbl_10 52 - -52 static.sp_256_mul_add_10 82 - -82 sp_256_from_bin_10 119 - -119 sp_256_to_bin_10 120 - -120 sp_256_mont_reduce_10 178 - -178 sp_256_mont_mul_10 214 - -214 sp_256_proj_point_dbl_10 451 - -451 sp_256_ecc_mulmod_10 1216 - -1216 sp_256_mod_mul_norm_10 1305 - -1305 ------------------------------------------------------------------------------ (add/remove: 12/15 grow/shrink: 1/2 up/down: 3106/-3919) Total: -813 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: fix the case of sp_256_mont_tpl_10() leaving striay high bitsDenys Vlasenko2021-10-053-11/+72
| | | | | | | | | | | | | It has no effect on correctness, but interferes with compating internal state of different implementations. function old new delta sp_256_proj_point_dbl_10 443 451 +8 static.sp_256_mont_sub_10 46 49 +3 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 11/0) Total: 11 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: fix (what looks like) a rare corner case bug in P256Denys Vlasenko2021-10-051-4/+7
| | | | | | | function old new delta static.sp_256_mont_sub_10 30 46 +16 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: remove one overzealous debugging statementDenys Vlasenko2021-10-051-4/+0
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: add debugging scaffolding to P256 codeDenys Vlasenko2021-10-051-0/+53
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: another P256 code shrinkDenys Vlasenko2021-10-051-69/+54
| | | | | | | | | | | | | | | | | Propagate constant arrays and scalars deeper down call chain. Use sp_256_mont_mul_10 to implement sp_256_mont_sqr_10. function old new delta sp_256_mont_mul_10 - 214 +214 sp_256_mont_reduce_10 - 178 +178 sp_256_mont_sqr_10 - 7 +7 static.sp_256_mont_reduce_10 178 - -178 static.sp_256_mont_mul_10 214 - -214 static.sp_256_mont_sqr_10 234 - -234 ------------------------------------------------------------------------------ (add/remove: 3/3 grow/shrink: 0/0 up/down: 399/-626) Total: -227 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: P256 code shrinkDenys Vlasenko2021-10-051-52/+42
| | | | | | | | | | | | | | | function old new delta sp_256_to_bin_10 - 120 +120 sp_256_from_bin_10 - 119 +119 sp_256_proj_point_dbl_10 446 443 -3 curve_P256_compute_pubkey_and_premaster 191 186 -5 sp_256_point_from_bin2x32 62 50 -12 sp_256_to_bin 120 - -120 static.sp_256_from_bin 149 - -149 ------------------------------------------------------------------------------ (add/remove: 2/2 grow/shrink: 0/3 up/down: 239/-289) Total: -50 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tls: "server cert is not RSA" is a fatal errorDenys Vlasenko2021-10-011-1/+1
| | | | | | | function old new delta tls_handshake 2022 2019 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* wget: implement --post-fileRon Yorston2021-10-011-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the --post-file option to send form data from a file. As with --post-data it's up to the user to ensure that the data is encoded as appropriate: all wget does is stuff the provided data into the request. The --post-data and --post-file options are mutually exclusive and only one instance of either may be given. Additionally: - update the usage message to include missing details of the --post-data and --header options; - free POST data if FEATURE_CLEAN_UP is enabled. function old new delta packed_usage 34158 34214 +56 wget_main 2762 2805 +43 .rodata 99225 99240 +15 static.wget_longopts 266 278 +12 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 126/0) Total: 126 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>