aboutsummaryrefslogtreecommitdiffstats
path: root/src/blake2 (follow)
AgeCommit message (Collapse)AuthorFilesLines
2025-07-04maint: prefer endian.h macros to WORDS_BIGENDIAN, part 2Collin Funk1-1/+2
* src/blake2/blake2-impl.h: Include endian.h. Use BYTE_ORDER and LITTLE_ENDIAN instead of WORDS_BIGENDIAN.
2023-10-30digest: omit unnecessary b2sum includesPaul Eggert1-6/+5
* src/blake2/b2sum.c: Do not include string.h, errno.h, ctype.h, unistd.h, getopt.h.
2023-07-01maint: improve static and dynamic checkingPaul Eggert1-1/+0
This modernizes the source code somewhat, to take advantage of advances in GCC over the years, and Gnulib’s ‘assure’ module. Include assure.h in files that now need it. Do not include assert.h directly; it’s no longer needed. * bootstrap.conf (gnulib_modules): Add ‘assure’. * gl/lib/randread.c (randread_error): * src/chmod.c (describe_change): * src/chown-core.c (describe_change): * src/cp.c (decode_preserve_arg): * src/head.c (diagnose_copy_fd_failure): * src/ls.c (parse_ls_color): * src/od.c (decode_one_format): * src/split.c (main): * src/test.c (binary_operator, posixtest): Prefer affirm to abort, since it has better diagnostics in the normal case and better performance with -DNDEBUG. * gl/lib/xdectoint.c, src/die.h: Include stddef.h, for unreachable. * gl/lib/xdectoint.c: Do not include verify.h; no longer needed. * gl/lib/xdectoint.c (__xnumtoint): * src/die.h (die): Prefer C23 unreachable () to assume (false). * gl/lib/xfts.c (xfts_open): * src/basenc.c (base32hex_encode): * src/copy.c (abandon_move, copy_internal, valid_options): * src/cut.c (cut_fields): * src/df.c (alloc_field, decode_output_arg, get_dev): * src/du.c (process_file, main): * src/echo.c (usage): * src/factor.c (udiv_qrnnd, mod2, gcd2_odd, factor_insert_large) (mulredc2, factor_using_pollard_rho, isqrt2, div_smallq) (factor_using_squfof): * src/iopoll.c (iopoll_internal, fwrite_wait): * src/join.c (add_field): * src/ls.c (dev_ino_pop, main, gobble_file, sort_files): * src/mv.c (do_move): * src/od.c (decode_format_string, read_block, dump, main): * src/remove.c (rm): * src/rm.c (main): * src/sort.c (stream_open): * src/split.c (next_file_name, lines_chunk_split): * src/stdbuf.c (main): * src/stty.c (set_speed): * src/tac-pipe.c (line_ptr_decrement, line_ptr_increment): * src/touch.c (touch): * src/tr.c (find_bracketed_repeat, get_next) (validate_case_classes, get_spec_stats, string2_extend, main): * src/tsort.c (search_item, tsort): * src/wc.c (main): Prefer affirm to assert, as it allows for better static checking when compiling with -DNDEBUG. * src/chown-core.c (change_file_owner): * src/df.c (get_field_list): * src/expr.c (printv, null, tostring, toarith, eval2): * src/ls.c (time_type_to_statx, calc_req_mask, get_funky_string) (print_long_format): * src/numfmt.c (simple_strtod_fatal): * src/od.c (decode_one_format): * src/stty.c (mode_type_flag): * src/tail.c (xlseek): * src/tr.c (is_char_class_member, get_next, get_spec_stats) (string2_extend): Prefer unreachable () to abort () or assert (false) when merely pacifying the compiler, e.g., in a switch statement on an enum where all cases are covered. * src/copy.c (valid_options): Now returns void; the bool was useless. Caller no longer needs to assert. * src/csplit.c (find_line): * src/expand-common.c (next_file): * src/shred.c (incname): * src/sort.c (main): * src/tr.c (append_normal_char, append_range, append_char_class) (append_repeated_char, append_equiv_class): * src/tsort.c (search_item): Omit assert, since the hardware will check for us. * src/df.c (header_mode): Now the enum type it should have been. * src/du.c (process_file): * src/ls.c (assert_matching_dev_ino): * src/tail.c (valid_file_spec): * src/tr.c (validate_case_classes): Mark defns with MAYBE_UNUSED if they’re not used when -DNDEBUG. * src/factor.c (prime_p, prime2_p, mp_prime_p): Now ATTRIBUTE_PURE. Prefer affirm to error+abort. No need to translate this diagnostic. * src/fmt.c (get_paragraph): * src/stty.c (display_changed, display_all, sane_mode): * src/who.c (idle_string): Prefer assume to assert, since the goal is merely pacification and assert doesn’t pacify anyway if -DNDEBUG is used. * src/join.c (decode_field_spec): Omit unreachable abort. * src/ls.c (assert_matching_dev_ino, main): * src/tr.c (get_next): Prefer assure to assert, since the check is relatively expensive and won’t help static analysis. * src/ls.c (main): Prefer static_assert to assert of a constant expression. (format_inode): Redo to make it clear that buflen doesn’t matter, and that buf must have a certain number of bytes. All callers changed. This pacifies -Wformat-overflow. * src/od.c (decode_one_format): Omit an assert that tested for obviously undefined behavior, as the compiler could optimize it away anyway. * src/od.c (decode_one_format, decode_format_string): Prefer ATTRIBUTE_NONNULL to runtime checking. * src/stat.c: Do not include <stddef.h> since system.h does that now. * src/sync.c (sync_arg): Prefer unreachable () to assert (true), which was a typo. * src/system.h: Include stddef.h, for unreachable. * src/tail.c (xlseek): Simplify by relying on ‘error’ to exit.
2023-06-29maint: prefer C23-style nullptrPaul Eggert1-3/+3
* bootstrap.conf (gnulib_modules): Add nullptr. In code, prefer nullptr to NULL where either will do.
2022-09-15maint: don’t include config.h twicePaul Eggert1-3/+0
* gl/lib/fadvise.h, gl/lib/smack.h, src/blake2/blake2-impl.h: Do not include config.h from a .h file. config.h is supposed to be included once, at the start of compilation and before any other file.
2022-09-12maint: adjust to Gnulib stdbool C23 changePaul Eggert1-1/+0
* gl/lib/mbsalign.c, gl/lib/randread.c, gl/lib/targetdir.h: * gl/lib/xdectoint.c, gl/lib/xfts.c, gl/lib/xfts.h: * src/blake2/b2sum.c, src/copy.h, src/die.h, src/system.h: Don’t include <stdbool.h>, since Gnulib now emulates C23.
2021-12-18maint: use GNU style for spacingPaul Eggert2-4/+4
2021-10-31maint: add function attributes to .h filesPaul Eggert2-2/+4
Add _GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DALLOC_FREE, _GL_ATTRIBUTE_RETURNS_NONNULL to .h files when appropriate. * gl/lib/mbsalign.h, gl/lib/randperm.h, src/chown-core.h: Include stdlib.h, for the benefit of _GL_ATTRIBUTE_DALLOC_FREE. * gl/lib/randread.c (randread_free_body): New static function. (randread_new, randread_free): Use it. * src/copy.c (valid_options): Remove assert that is no longer needed because it is now checked statically.
2021-10-31b2sum: simplify attribute usagePaul Eggert1-11/+5
* src/blake2/blake2.h (BLAKE2_PACKED): Simplify, and port better to older GCC, by using _GL_ATTRIBUTE_PACKED.
2021-08-22maint: use clearerr on stdin when appropriatePaul Eggert1-1/+4
This is so that commands like ‘fmt - -’ read from stdin both times, even when it is a tty. Fix some other minor issues that are related. * src/blake2/b2sum.c (main): * src/cksum.c (cksum): * src/cut.c (cut_file): * src/expand-common.c (next_file): * src/fmt.c (fmt): * src/fold.c (fold_file): * src/md5sum.c (digest_file, digest_check): * src/nl.c (nl_file): * src/od.c (check_and_close): * src/paste.c (paste_parallel, paste_serial): * src/pr.c (close_file): * src/sum.c (bsd_sum_file): Use clearerr on stdin so that stdin can be read multiple times even if it is a tty. Do not assume that ferror preserves errno as POSIX does not guarantee this. Coalesce duplicate diagnostic calls. * src/blake2/b2sum.c (main): * src/fmt.c (main, fmt): Report read error, even if it's merely fclose failure. * src/fmt.c: Include die.h. (fmt): New arg FILE. Close input (reporting error) if not stdin. All callers changed. * src/ptx.c (swallow_file_in_memory): Clear stdin's EOF flag. * src/sort.c (xfclose): Remove unnecessary feof call.
2020-02-25b2sum: sync better with upstreamPádraig Brady1-2/+9
* src/blake2/blake2-impl.h: Sync load16() implementation, which doesn't change code generation. Also leverage (builtin) memcpy to more efficiently move data on little endian systems, giving a 2% win with GCC 9.2.1 on an i3-2310M.
2019-05-17b2sum: port blake2b-ref.c to HP-UX aCCPaul Eggert1-0/+4
Continue the fix for Bug#35650. * src/blake2/blake2b-ref.c [HAVE_CONFIG_H]: Include <config.h>.
2019-05-15b2sum: sync better with upstreamPaul Eggert1-13/+16
* src/blake2/b2sum.c: Reorder source code to minimize diffs from: https://github.com/BLAKE2/BLAKE2/blob/master/b2sum/b2sum.c
2019-05-15b2sum: port to HP-UX aCCPaul Eggert1-0/+4
Its support for the -include option is flaky. Problem reported by Michael Osipov (Bug#35650). Plus, we could run into other compilers that don’t support any option like -include. Change the code so that -include is not needed. Although this causes us to depart from the upstream version, we’re already doing that for other reasons. * configure.ac (USE_XLC_INCLUDE): Remove, as there’s no guarantee a compiler will support something like -include. * src/blake2/b2sum.c [HAVE_CONFIG_H]: Include <config.h>. * src/local.mk (src_b2sum_CPPFLAGS): Add -DHAVE_CONFIG_H. Do not use -include or a substitute.
2019-05-11b2sum: port to HP-UX CPaul Eggert1-4/+12
* src/blake2/blake2.h (BLAKE2_PACKED): Don’t assume __attribute__ ((packed)) works on non-Microsoft compilers. Instead, assume it works only if we have good reason to assume so, and fall back on Microsoft (or not packing) otherwise. In practice, not packing is good enough and the BLAKE2_PACKED macro is mostly just for documentation.
2017-09-19all: prefer HTTPS in URLsPaul Eggert5-10/+10
2017-07-23maint: resync with blake2 upstreamPádraig Brady1-1/+2
* src/blake2/blake2-impl.h: Don't use the equivalent explicit_bzero().
2017-07-20shred: use explicit_bzeroPaul Eggert1-2/+1
* NEWS: Document this. * bootstrap.conf (gnulib_modules): Add explicit_bzero. * gl/lib/randint.c (randint_free): * gl/lib/randread.c (randread_free): * src/blake2/blake2-impl.h (secure_zero_memory): * src/shred.c (dopass, do_wipefd): Prefer explicit_bzero to memset when erasing secrets.
2016-11-22b2sum: a new checksum utility with md5sum like interfacePádraig Brady6-0/+1144
Note we don't support the --algorithm option of the b2sum command in the external BLAKE2 project, as that was deemed too confusing for users. "BLAKE2b" was chosen as the default algorithm to use, which is single threaded but performs well on 64 bit. * src/blake2: CC0 source copied from external project. * cfg.mk[VC_LIST_ALWAYS_EXCLUDE_REGEX]: Exclude blake2/ from syntax checks, make update-copyright, etc. * src/local.mk: Reference the sources for b2sum, and set the compilation flags. * doc/coreutils.texi (b2sum invocation): Reference the md5sum invocation node, and add descriptions of -l. * tests/misc/b2sum.sh: Add new test. * tests/local.mk: Reference new test. * AUTHORS: Add new binary. * README: Likewise. * build-aux/gen-lists-of-programs.sh: Likewise. * man/.gitignore: Likewise. * scripts/git-hooks/commit-msg: Likewise. * man/b2sum.x: New man page template. * man/local.mk: Reference new template. * src/.gitignore: Ignore new binaries. * src/blake2/.gitignore: Ignore new build atrifacts. * src/md5sum.c (usage): Describe the new -l option. * NEWS: Mention the new program.