Commit Graph

15897 Commits

Author SHA1 Message Date
Denys Vlasenko
f6c1da5ff3 bc: select parse_init() and parse_expr() using IS_BC, not function pointers
function                                             old     new   delta
common_parse_expr                                      -      62     +62
common_parse_init                                      -      29     +29
dc_parse_parse                                        53      52      -1
dc_parse_expr                                        723     719      -4
bc_program_execStr                                   606     594     -12
dc_parse_init                                         33      18     -15
bc_parse_init                                         33      18     -15
bc_parse_expression                                   39       -     -39
bc_vm_run                                           1923    1872     -51
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 0/6 up/down: 91/-137)           Total: -46 bytes
   text	   data	    bss	    dec	    hex	filename
 988774	    485	   7296	 996555	  f34cb	busybox_old
 988728	    485	   7296	 996509	  f349d	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-05 15:43:35 +01:00
Denys Vlasenko
785e4b3057 bc: propagate fixed arguments into callees
Looks like there is only one "BcProgram" object, &G.prog.

function                                             old     new   delta
bc_program_exec                                     4401    4523    +122
bc_program_execStr                                   579     606     +27
bc_program_read                                      323     342     +19
bc_args                                               83      97     +14
bc_vm_process                                        327     323      -4
bc_num_ulong                                          95      85     -10
dc_main                                               62      48     -14
bc_main                                               62      48     -14
bc_vm_run                                           2317    1923    -394
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/5 up/down: 182/-436)         Total: -254 bytes
   text	   data	    bss	    dec	    hex	filename
 989028	    485	   7296	 996809	  f35c9	busybox_old
 988774	    485	   7296	 996555	  f34cb	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-05 15:43:35 +01:00
Denys Vlasenko
ab3c568fd8 bc: simplify ^C handling
It's still buggy: if SIGINT would interrupt e.g. output write(),
the result would not be as intended:

>>> while ( 1 ) print 1
...
11111111111111111111111111111111111111111111111111111111111111111111\
11111111111111111111111111111111111111111111111111111111111111111111\
^Cready for more input

interrupt (type "quit" to exit)
>>> bc: output error

function                                             old     new   delta
dc_parse_parse                                        58      53      -5
bc_parse_parse                                       476     471      -5
bc_num_d                                             609     604      -5
bc_num_cmp                                           299     294      -5
bc_num_compare                                        90      84      -6
bc_parse_expr                                       2222    2215      -7
bc_num_subArrays                                      82      74      -8
dc_main                                               72      62     -10
bc_main                                               72      62     -10
bc_program_exec                                     4413    4401     -12
bc_num_a                                             491     474     -17
bc_read_line                                         364     344     -20
bc_num_p                                             540     518     -22
bc_program_reset                                     192     168     -24
bc_num_k                                            1031    1005     -26
bc_vm_run                                           2382    2317     -65
bc_vm_sig                                             97       -     -97
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/16 up/down: 0/-344)          Total: -344 bytes
   text	   data	    bss	    dec	    hex	filename
 989372	    485	   7296	 997153	  f3721	busybox_old
 989028	    485	   7296	 996809	  f35c9	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-05 15:43:35 +01:00
Denys Vlasenko
6d9146ab56 bc: convert to "G trick" - this returns bc to zero bss increase
function                                             old     new   delta
bc_num_p                                             518     540     +22
bc_num_k                                            1010    1031     +21
bc_vm_process                                        312     327     +15
bc_program_exec                                     4401    4413     +12
bc_vm_posixError                                     194     205     +11
bc_num_a                                             480     491     +11
bc_program_reset                                     182     192     +10
bc_vm_sig                                             88      97      +9
bc_vm_error                                          148     156      +8
bc_parse_expr                                       2215    2222      +7
bc_num_compare                                        84      90      +6
dc_parse_parse                                        53      58      +5
dc_lex_token                                         670     675      +5
bc_read_line                                         359     364      +5
bc_parse_parse                                       471     476      +5
bc_num_cmp                                           294     299      +5
bc_num_subArrays                                      84      82      -2
bc_num_d                                             614     609      -5
dc_main                                               80      72      -8
bc_main                                               80      72      -8
bcg                                                   40       -     -40
bc_vm_run                                           2569    2382    -187
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 16/5 up/down: 157/-250)         Total: -93 bytes
   text	   data	    bss	    dec	    hex	filename
 989425	    485	   7336	 997246	  f377e	busybox_old
 989372	    485	   7296	 997153	  f3721	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-05 15:43:35 +01:00
Denys Vlasenko
5a9fef5b59 bc: simplify, and restore ^C, fix ^D handling
^D used to enter infinite loop

function                                             old     new   delta
bc_read_line                                         342     359     +17
bc_args_opt                                            8       -      -8
dc_sig_msg                                            31       -     -31
bc_sig_msg                                            34       -     -34
bc_vm_run                                           2608    2569     -39
bc_args                                              123      83     -40
bc_args_lopt                                          81       -     -81
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 1/2 up/down: 17/-233)          Total: -216 bytes
   text	   data	    bss	    dec	    hex	filename
 989491	    485	   7336	 997312	  f37c0	busybox_old
 989425	    485	   7336	 997246	  f377e	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-05 15:43:35 +01:00
Denys Vlasenko
00d7779a35 bc: simplify, stop testing for IO errors on every output
function                                             old     new   delta
bc_read_line                                         297     342     +45
bc_vm_run                                           2601    2608      +7
bc_program_reset                                     178     182      +4
bc_args                                              125     123      -2
dc_name                                                3       -      -3
bc_name                                                3       -      -3
bc_program_printStream                               176     172      -4
bcg                                                   48      40      -8
dc_main                                               97      80     -17
bc_main                                               97      80     -17
bc_vm_fflush                                          21       -     -21
bc_vm_puts                                            23       -     -23
bc_vm_printf                                          36       -     -36
bc_vm_putchar                                         46       -     -46
bc_vm_exit                                            46       -     -46
bc_vm_process                                        361     312     -49
bc_vm_info                                            76      19     -57
bc_copyright                                         155       -    -155
------------------------------------------------------------------------------
(add/remove: 0/8 grow/shrink: 3/7 up/down: 56/-487)          Total: -431 bytes
   text	   data	    bss	    dec	    hex	filename
 989722	    485	   7344	 997551	  f38af	busybox_old
 989491	    485	   7336	 997312	  f37c0	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-05 15:42:52 +01:00
Denys Vlasenko
ef869ec728 bc: fix warnings, initial cleanups
function                                             old     new   delta
bc_program_exec                                        -    4401   +4401
bc_vm_run                                              -    2601   +2601
bc_parse_expr                                          -    2215   +2215
bc_parse_stmt                                          -    2197   +2197
bc_lib                                                 -    1878   +1878
bc_lex_token                                           -    1333   +1333
bc_program_num                                         -    1134   +1134
bc_num_k                                               -    1010   +1010
bc_program_modexp                                      -     793    +793
bc_program_print                                       -     762    +762
dc_parse_expr                                          -     723    +723
dc_lex_token                                           -     670    +670
bc_num_d                                               -     614    +614
bc_parse_name                                          -     590    +590
bc_program_execStr                                     -     579    +579
bc_num_printNum                                        -     572    +572
bc_num_p                                               -     518    +518
bc_num_a                                               -     480    +480
bc_parse_parse                                         -     471    +471
bc_program_assign                                      -     450    +450
bc_parse_endBody                                       -     423    +423
bc_program_call                                        -     371    +371
dc_lex_tokens                                          -     364    +364
bc_vm_process                                          -     361    +361
bc_program_copyToVar                                   -     355    +355
dc_parse_insts                                         -     332    +332
bc_program_read                                        -     323    +323
bc_program_binOpPrep                                   -     301    +301
bc_lex_number                                          -     301    +301
bc_read_line                                           -     297    +297
bc_num_cmp                                             -     294    +294
bc_num_m                                               -     287    +287
bc_parse_auto                                          -     275    +275
bc_num_s                                               -     258    +258
bc_program_pushVar                                     -     236    +236
bc_num_r                                               -     231    +231
bc_program_addFunc                                     -     220    +220
bc_lex_kws                                             -     220    +220
bc_err_msgs                                            -     216    +216
bc_parse_create                                        -     198    +198
bc_vm_posixError                                       -     194    +194
bc_parse_reset                                         -     194    +194
bc_parse_operator                                      -     181    +181
bc_program_reset                                       -     178    +178
bc_program_printStream                                 -     176    +176
bc_num_divmod                                          -     168    +168
bc_copyright                                           -     155    +155
bc_program_search                                      -     154    +154
bc_num_binary                                          -     150    +150
bc_vm_error                                            -     148    +148
bc_program_pushArray                                   -     143    +143
bc_parse_text                                          -     142    +142
bc_num_printDigits                                     -     142    +142
bc_map_insert                                          -     142    +142
bc_parse_else                                          -     139    +139
bc_program_assignStr                                   -     131    +131
bc_args                                                -     125    +125
dc_parse_mem                                           -     116    +116
bc_parse_body                                          -     116    +116
bc_num_split                                           -     113    +113
bc_num_sub                                             -     112    +112
bc_num_add                                             -     112    +112
packed_usage                                       32958   33066    +108
bc_num_rem                                             -     104    +104
bc_parse_string                                        -     103    +103
bc_main                                                -      97     +97
bc_num_ulong                                           -      95     +95
bc_func_insert                                         -      89     +89
bc_vm_sig                                              -      88     +88
bc_program_prep                                        -      88     +88
bc_parse_number                                        -      88     +88
bc_array_expand                                        -      88     +88
bc_num_subArrays                                       -      84     +84
bc_num_compare                                         -      84     +84
bc_lex_name                                            -      83     +83
bc_args_lopt                                           -      81     +81
bc_parse_pushIndex                                     -      80     +80
bc_num_mul                                             -      80     +80
bc_num_mod                                             -      80     +80
bc_num_div                                             -      80     +80
bc_vm_info                                             -      76     +76
bc_program_name                                        -      75     +75
bc_map_find                                            -      71     +71
bc_lex_next                                            -      71     +71
bc_num_printHex                                        -      70     +70
bc_vec_concat                                          -      68     +68
bc_num_shift                                           -      68     +68
bc_num_extend                                          -      68     +68
bc_program_index                                       -      66     +66
bc_num_ulong2num                                       -      66     +66
bc_num_retireMul                                       -      66     +66
bc_parse_noElse                                        -      65     +65
bc_vec_string                                          -      64     +64
bc_parse_pushName                                      -      63     +63
bc_parse_exprs                                         -      60     +60
bc_err_ids                                             -      58     +58
bc_result_free                                         -      57     +57
bc_vec_npop                                            -      55     +55
dc_parse_parse                                         -      53     +53
bc_vec_push                                            -      53     +53
bc_parse_free                                          -      53     +53
bc_num_inv                                             -      53     +53
dc_parse_register                                      -      52     +52
dc_lex_regs                                            -      52     +52
bc_lex_whitespace                                      -      52     +52
bc_num_copy                                            -      51     +51
bc_program_binOpRetire                                 -      50     +50
bc_parse_ops                                           -      50     +50
bc_map_index                                           -      50     +50
bcg                                                    -      48     +48
bc_num_init                                            -      48     +48
bc_parse_startBody                                     -      47     +47
bc_num_pow                                             -      47     +47
bc_vm_putchar                                          -      46     +46
bc_vm_exit                                             -      46     +46
bc_num_clean                                           -      45     +45
bc_parse_addFunc                                       -      44     +44
bc_vec_grow                                            -      42     +42
bc_program_len                                         -      42     +42
bc_num_truncate                                        -      42     +42
bc_array_init                                          -      42     +42
bc_parse_expression                                    -      39     +39
bc_lex_lineComment                                     -      39     +39
bc_num_expand                                          -      38     +38
bc_vec_init                                            -      37     +37
bc_vm_printf                                           -      36     +36
bc_num_printNewline                                    -      36     +36
bc_func_free                                           -      35     +35
bc_sig_msg                                             -      34     +34
bc_program_retire                                      -      34     +34
bc_lex_assign                                          -      34     +34
dc_parse_init                                          -      33     +33
bc_parse_init                                          -      33     +33
dc_sig_msg                                             -      31     +31
bc_vec_expand                                          -      30     +30
bc_num_ten                                             -      30     +30
bc_num_one                                             -      28     +28
bc_errs                                                -      28     +28
bc_vec_free                                            -      27     +27
bc_program_ops                                         -      24     +24
bc_vm_puts                                             -      23     +23
bc_num_printChar                                       -      23     +23
bc_program_ready_msg                                   -      22     +22
bc_vm_fflush                                           -      21     +21
dc_main                                               77      97     +20
bc_parse_next_rel                                      -      20     +20
bc_parse_next_read                                     -      20     +20
bc_parse_next_print                                    -      20     +20
bc_parse_next_param                                    -      20     +20
bc_parse_next_for                                      -      20     +20
bc_parse_next_expr                                     -      20     +20
bc_parse_next_elem                                     -      20     +20
bc_warn_fmt                                            -      17     +17
bc_vec_pushByte                                        -      15     +15
bc_string_free                                         -      15     +15
bc_num_setToZero                                       -      15     +15
bc_num_free                                            -      15     +15
bc_lex_file                                            -      15     +15
bc_id_free                                             -      15     +15
bc_err_fmt                                             -      15     +15
bc_vec_item_rev                                        -      14     +14
bc_id_cmp                                              -      12     +12
bc_num_zero                                            -      11     +11
bc_vec_item                                            -       9      +9
bc_program_stdin_name                                  -       8      +8
bc_program_scale                                       -       8      +8
bc_args_opt                                            -       8      +8
bc_func_read                                           -       7      +7
bc_func_main                                           -       7      +7
bc_err_line                                            -       7      +7
bc_lib_name                                            -       4      +4
bc_args_env_name                                       -       4      +4
applet_main                                         1604    1608      +4
dc_name                                                -       3      +3
bc_name                                                -       3      +3
applet_names                                        2781    2784      +3
static.bases                                           5       -      -5
check_under                                           20       -     -20
pop                                                   24       -     -24
print_no_pop                                          32       -     -32
sub                                                   34       -     -34
divide                                                34       -     -34
mul                                                   37       -     -37
add                                                   37       -     -37
push                                                  38       -     -38
print_stack_no_pop                                    40       -     -40
not                                                   72       -     -72
set_output_base                                       95       -     -95
or                                                   103       -    -103
eor                                                  103       -    -103
and                                                  103       -    -103
mod                                                  105       -    -105
stack_machine                                        116       -    -116
operators                                            144       -    -144
print_base                                           230       -    -230
------------------------------------------------------------------------------
(add/remove: 173/20 grow/shrink: 4/0 up/down: 38089/-1372)  Total: 36717 bytes
   text	   data	    bss	    dec	    hex	filename
 950181	    485	   7296	 957962	  e9e0a	busybox_old
 989722	    485	   7344	 997551	  f38af	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-05 15:42:48 +01:00
Gavin Howard
01055ba89a bc: new applet, throws warning
Signed-off-by: Gavin Howard <yzena.tech@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-05 15:40:38 +01:00
Ron Yorston
d08206dce1 vi: correctly detect when a deletion empties the buffer
Michał Berger has reported two issues:

- Repeatedly deleting and undoing the deletion of the last line
  results in characters being lost from the end of the line.

- Deleting the bottom line twice then attempting to undo each of
  these deletions results in a segfault.

The problem seems to be an incorrect test for whether the text buffer
is empty.

Reported-by: Michał Berger <michallinuxstuff@gmail.com>
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-03 10:07:58 +01:00
Denys Vlasenko
b733046069 vi: code shrink
function                                             old     new   delta
char_search                                          241     247      +6
get_one_address                                      275     272      -3
colon                                               2878    2875      -3
do_cmd                                              4726    4720      -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 6/-12)              Total: -6 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-29 14:39:52 +01:00
Denys Vlasenko
836d0a7ee4 vi: fix FEATURE_VI_REGEX_SEARCH to respect LIMITED (one-line) search
If busybox is compiled with FEATURE_VI_REGEX_SEARCH enabled, command
":s/x/y/" searches not only in the current line, but continues search
after it. This makes range searches (":1,3s/x/y/") work incorrect. For
example file "./test":
1
2
3

$ vi ./test
:1,2s/3/e/
gives us:
1
2
e

function                                             old     new   delta
char_search                                          213     241     +28

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-29 14:19:57 +01:00
Denys Vlasenko
9a2b6dcc2d libbb: do not misinterpret 0x10-0x19 chars in "\xNNN" too
function                                             old     new   delta
bb_process_escape_sequence                           141     151     +10

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-29 13:16:15 +01:00
Denys Vlasenko
480c7e5dfb libbb: @ in "\x3@" is not a valid hex digit
function                                             old     new   delta
bb_process_escape_sequence                           134     141      +7

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-29 12:34:50 +01:00
Denys Vlasenko
c100535571 cat,nl: fix handling of open errors
$ cat -n does_not_exist; echo $?
cat: does_not_exist: No such file or directory
1

function                                             old     new   delta
print_numbered_lines                                 118     129     +11
nl_main                                              196     201      +5
cat_main                                             421     425      +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 20/0)               Total: 20 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-29 11:44:10 +01:00
Denys Vlasenko
75a1c87357 awk: abort if NF set to negative value
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-28 12:16:29 +01:00
Chen Qi
572dfb8e78 testsuite: check CONFIG_DESKTOP before using 'od -t'
The '-t' option for od is enabled by CONFIG_DESKTOP. So
check this config before using 'od -t' in test cases.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 16:57:36 +01:00
Ron Yorston
71df2d3589 hush: allow hush to run embedded scripts
Embedded scripts require a shell to be present in the BusyBox
binary.  Allow either ash or hush to be used for this purpose.
If both are enabled ash takes precedence.

The size of the binary is unchanged in the default configuration:
both ash and hush are present but support for embedded scripts
isn't compiled into hush.

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 16:13:07 +01:00
Denys Vlasenko
f4709d78cb free: ensure there is a least one space between numbers
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 15:43:10 +01:00
Ron Yorston
31a04d91c2 docs: add embedded-scripts.txt
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 12:33:28 +01:00
Denys Vlasenko
403d2574be tar: skip 'V' headers (GNU volume label), closes 11526
function                                             old     new   delta
get_header_tar                                      1696    1690      -6

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 12:09:01 +01:00
Denys Vlasenko
e80d04b574 unlzma: fix too-eager corruption check
function                                             old     new   delta
unpack_lzma_stream                                  2686    2674     -12

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 11:52:14 +01:00
Denys Vlasenko
f4fc303e36 tar: fix too eager autodetection, closes 11531
function                                             old     new   delta
is_suffixed_with                                       -      54     +54
tar_main                                            1006    1026     +20
open_transformer                                      92      79     -13
config_file_action                                   478     458     -20
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/2 up/down: 74/-33)             Total: 41 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 11:26:48 +01:00
Ron Yorston
2d217799e8 build system: prevent duplicate applet names
The embedded script feature makes it easier to create applets with
duplicate names.  Currently in such cases the build succeeds but
the resulting executable doesn't work as the developer intended.

Catch duplicate names when the applet tables are being generated
and make the build fail.

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 10:47:06 +01:00
Ron Yorston
7b42f8fc76 Tweaks to build process for embedded scripts
- Force a rebuild if a script in applets_sh is changed.

- Move the dummy usage messages for custom applets to usage.h and
  change the name from 'dummy' to 'scripted'.

- Hide an error from gen_build_files.sh if an embed directory exists
  but is empty.

- Tidy up embedded_scripts script.

v2: Remove a couple of unnecessary tests in embedded_scripts, as
    pointed out by Xabier Oneca.
    Drop the stripping of comments.

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 10:38:10 +01:00
Denys Vlasenko
dffc8ff6a6 tls: add ECDHE_PSK and remove ARIA cipher ids
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-27 10:35:10 +01:00
Denys Vlasenko
8a46c74f8d tls: add _anon_ cipher definitions
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-26 17:33:17 +01:00
Denys Vlasenko
2eb04290f9 tls: enable TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 cipher
function                                             old     new   delta
static.ciphers                                        30      32      +2

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-26 16:39:35 +01:00
Denys Vlasenko
60f784027e tls: cipher 009D is not yet supported, don't test for it
function                                             old     new   delta
tls_handshake                                       2116    2108      -8

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-26 16:30:22 +01:00
Denys Vlasenko
d9f6c3b091 tls: speed up prf_hmac_sha256()
function                                             old     new   delta
hmac_sha_precomputed                                   -      58     +58
prf_hmac_sha256                                      181     222     +41
hmac_sha256                                           68       -     -68
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/0 up/down: 99/-68)             Total: 31 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-26 15:55:41 +01:00
Denys Vlasenko
f69f207490 libbb: add comment on sha384
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-26 13:00:28 +01:00
Denys Vlasenko
d4681c7293 tls: simplify hmac_begin()
function                                             old     new   delta
hmac_begin                                           196     158     -38

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-26 10:33:23 +01:00
Denys Vlasenko
ca7cdd4b03 tls: add support for 8 more cipher ids - all tested to work
function                                             old     new   delta
tls_handshake                                       2059    2116     +57
static.ciphers                                         -      30     +30
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 87/0)               Total: 87 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-26 00:17:10 +01:00
Denys Vlasenko
838b88c044 tls: fix comments
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-25 18:52:47 +01:00
Denys Vlasenko
330d7f53f7 tls: add a comment on expanding list of supported ciphers
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-25 17:27:48 +01:00
Denys Vlasenko
a6192f347f tls: do not leak RSA key
function                                             old     new   delta
tls_handshake                                       1957    2059    +102

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-25 16:17:26 +01:00
Denys Vlasenko
eb53d01be5 tls: code shrink
function                                             old     new   delta
xwrite_and_update_handshake_hash                      81      80      -1
tls_handshake                                       1987    1957     -30

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-25 14:45:55 +01:00
Denys Vlasenko
a33b008240 tls: code shrink
function                                             old     new   delta
tls_handshake                                       1993    1987      -6

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-25 14:28:32 +01:00
Denys Vlasenko
be5ca42e8d tls: code shrink
function                                             old     new   delta
aesgcm_GHASH                                         223     196     -27

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-25 14:03:59 +01:00
Denys Vlasenko
23d0d8caf4 tls: on x86, use xorbuf_aligned_AES_BLOCK_SIZE() even with non-aligned source
function                                             old     new   delta
aesgcm_GHASH                                         228     223      -5

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-25 12:02:45 +01:00
Denys Vlasenko
ab3c5e4c44 tls: actually fill in CIPHER_ID3 value in hello message
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-25 00:53:19 +01:00
Denys Vlasenko
0d18e5cab2 ntpd: do not SEGV on "-p keyno:192.168.1.1", show --help instead
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-25 00:42:56 +01:00
Denys Vlasenko
5084bae61a wget: code shrink
function                                             old     new   delta
base64enc                                             53      46      -7

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-24 21:56:21 +01:00
Denys Vlasenko
d2923b3d23 tls: fix is.gd again, fix AES-CBC using decrypt key instead of encrypt
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-24 21:26:20 +01:00
Denys Vlasenko
03569bc50f tls: speed up xor'ing of aligned 16-byte buffers
function                                             old     new   delta
xorbuf_aligned_AES_BLOCK_SIZE                          -      23     +23
xwrite_encrypted                                     585     580      -5
aesgcm_GHASH                                         233     228      -5
GMULT                                                192     187      -5
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/3 up/down: 23/-15)              Total: 8 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-24 14:08:29 +01:00
Denys Vlasenko
941440cf16 tls: in AES-GCM decoding, avoid memmove
function                                             old     new   delta
xorbuf3                                                -      36     +36
xorbuf                                                24      12     -12
tls_xread_record                                     656     634     -22
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 36/-34)              Total: 2 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-24 13:51:46 +01:00
Denys Vlasenko
985702c892 tls: fix a thinko in GHASH optimization
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-24 13:47:44 +01:00
Denys Vlasenko
624066f0cc tls: make tls_get_random() FAST_FUNC
function                                             old     new   delta
tls_handshake                                       1977    1985      +8
tls_get_random                                        32      28      -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 8/-4)                Total: 4 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-23 19:24:57 +01:00
Denys Vlasenko
26602b85a3 wget: print the final newline only for non-tty output
$ busybox wget URL 2>&1 | cat
Connecting to ....
install.iso          0% |                                | 2629k  0:02:05 ETA
install.iso          7% |**                              | 25.7M  0:00:23 ETA
install.iso         16% |*****                           | 54.1M  0:00:14 ETA
install.iso         20% |******                          | 67.4M  0:00:15 ETA
install.iso         25% |********                        | 81.0M  0:00:14 ETA
install.iso         30% |*********                       | 97.3M  0:00:13 ETA
install.iso         36% |***********                     |  117M  0:00:12 ETA
install.iso         41% |*************                   |  134M  0:00:11 ETA
install.iso         47% |***************                 |  152M  0:00:10 ETA
install.iso         54% |*****************               |  176M  0:00:08 ETA
install.iso         61% |*******************             |  200M  0:00:06 ETA
install.iso         66% |*********************           |  215M  0:00:06 ETA
install.iso         71% |**********************          |  231M  0:00:05 ETA
install.iso         75% |************************        |  244M  0:00:04 ETA
install.iso         79% |*************************       |  257M  0:00:03 ETA
install.iso         84% |***************************     |  275M  0:00:02 ETA
install.iso         91% |*****************************   |  297M  0:00:01 ETA
install.iso         99% |******************************* |  321M  0:00:00 ETA
install.iso        100% |********************************|  323M  0:00:00 ETA
  <-- no empty line here
$

function                                             old     new   delta
bb_progress_update                                   622     632     +10
progress_meter                                       152     158      +6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 16/0)               Total: 16 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-23 19:14:52 +01:00
Denys Vlasenko
fbf5e6363b tls: code shrink
function                                             old     new   delta
aesgcm_GHASH                                         262     233     -29

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-23 19:07:05 +01:00
Denys Vlasenko
d496b4002a tls: typo fix in comment
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-23 19:00:12 +01:00