diff options
-rw-r--r-- | package/busybox/patches/501-libbb_hash.patch | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/package/busybox/patches/501-libbb_hash.patch b/package/busybox/patches/501-libbb_hash.patch deleted file mode 100644 index 53bf2be2e..000000000 --- a/package/busybox/patches/501-libbb_hash.patch +++ /dev/null @@ -1,185 +0,0 @@ ---- a/include/libbb.h -+++ b/include/libbb.h -@@ -1214,6 +1214,7 @@ - extern const char bb_uuenc_tbl_std[]; - void bb_uuencode(char *store, const void *s, int length, const char *tbl); - -+typedef enum { HASH_SHA1, HASH_MD5 } hash_algo_t; - typedef struct sha1_ctx_t { - uint32_t count[2]; - uint32_t hash[5]; -@@ -1235,6 +1236,8 @@ - void md5_begin(md5_ctx_t *ctx); - void md5_hash(const void *data, size_t length, md5_ctx_t *ctx); - void *md5_end(void *resbuf, md5_ctx_t *ctx); -+unsigned char *hash_bin_to_hex(unsigned char *hash_value, unsigned hash_length); -+uint8_t *hash_file(const char *filename, hash_algo_t hash_algo); - - uint32_t *crc32_filltable(uint32_t *tbl256, int endian); - ---- a/coreutils/md5_sha1_sum.c -+++ b/coreutils/md5_sha1_sum.c -@@ -8,72 +8,10 @@ - - #include "libbb.h" - --typedef enum { HASH_SHA1, HASH_MD5 } hash_algo_t; -- - #define FLAG_SILENT 1 - #define FLAG_CHECK 2 - #define FLAG_WARN 4 - --/* This might be useful elsewhere */ --static unsigned char *hash_bin_to_hex(unsigned char *hash_value, -- unsigned hash_length) --{ -- /* xzalloc zero-terminates */ -- char *hex_value = xzalloc((hash_length * 2) + 1); -- bin2hex(hex_value, (char*)hash_value, hash_length); -- return (unsigned char *)hex_value; --} -- --static uint8_t *hash_file(const char *filename, hash_algo_t hash_algo) --{ -- int src_fd, hash_len, count; -- union _ctx_ { -- sha1_ctx_t sha1; -- md5_ctx_t md5; -- } context; -- uint8_t *hash_value = NULL; -- RESERVE_CONFIG_UBUFFER(in_buf, 4096); -- void (*update)(const void*, size_t, void*); -- void (*final)(void*, void*); -- -- src_fd = open_or_warn_stdin(filename); -- if (src_fd < 0) { -- return NULL; -- } -- -- /* figure specific hash algorithims */ -- if (ENABLE_MD5SUM && hash_algo==HASH_MD5) { -- md5_begin(&context.md5); -- update = (void (*)(const void*, size_t, void*))md5_hash; -- final = (void (*)(void*, void*))md5_end; -- hash_len = 16; -- } else if (ENABLE_SHA1SUM && hash_algo==HASH_SHA1) { -- sha1_begin(&context.sha1); -- update = (void (*)(const void*, size_t, void*))sha1_hash; -- final = (void (*)(void*, void*))sha1_end; -- hash_len = 20; -- } else { -- bb_error_msg_and_die("algorithm not supported"); -- } -- -- while (0 < (count = safe_read(src_fd, in_buf, 4096))) { -- update(in_buf, count, &context); -- } -- -- if (count == 0) { -- final(in_buf, &context); -- hash_value = hash_bin_to_hex(in_buf, hash_len); -- } -- -- RELEASE_CONFIG_BUFFER(in_buf); -- -- if (src_fd != STDIN_FILENO) { -- close(src_fd); -- } -- -- return hash_value; --} -- - int md5_sha1_sum_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; - int md5_sha1_sum_main(int argc ATTRIBUTE_UNUSED, char **argv) - { ---- a/libbb/Kbuild -+++ b/libbb/Kbuild -@@ -40,6 +40,7 @@ - lib-y += get_last_path_component.o - lib-y += get_line_from_file.o - lib-y += getopt32.o -+lib-y += hash.o - lib-y += getpty.o - lib-y += herror_msg.o - lib-y += herror_msg_and_die.o ---- /dev/null -+++ b/libbb/hash.c -@@ -0,0 +1,78 @@ -+/* -+ * Copyright (C) 2003 Glenn L. McGrath -+ * Copyright (C) 2003-2004 Erik Andersen -+ * -+ * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. -+ */ -+ -+#include <fcntl.h> -+#include <limits.h> -+#include <stdio.h> -+#include <stdint.h> -+#include <stdlib.h> -+#include <string.h> -+#include <unistd.h> -+ -+#include "busybox.h" -+ -+/* This might be useful elsewhere */ -+unsigned char *hash_bin_to_hex(unsigned char *hash_value, -+ unsigned hash_length) -+{ -+ /* xzalloc zero-terminates */ -+ char *hex_value = xzalloc((hash_length * 2) + 1); -+ bin2hex(hex_value, (char*)hash_value, hash_length); -+ return hex_value; -+} -+ -+uint8_t *hash_file(const char *filename, hash_algo_t hash_algo) -+{ -+ int src_fd, hash_len, count; -+ union _ctx_ { -+ sha1_ctx_t sha1; -+ md5_ctx_t md5; -+ } context; -+ uint8_t *hash_value = NULL; -+ RESERVE_CONFIG_UBUFFER(in_buf, 4096); -+ void (*update)(const void*, size_t, void*); -+ void (*final)(void*, void*); -+ -+ src_fd = open_or_warn_stdin(filename); -+ if (src_fd < 0) { -+ return NULL; -+ } -+ -+ /* figure specific hash algorithims */ -+ if (ENABLE_MD5SUM && hash_algo==HASH_MD5) { -+ md5_begin(&context.md5); -+ update = (void (*)(const void*, size_t, void*))md5_hash; -+ final = (void (*)(void*, void*))md5_end; -+ hash_len = 16; -+ } else if (ENABLE_SHA1SUM && hash_algo==HASH_SHA1) { -+ sha1_begin(&context.sha1); -+ update = (void (*)(const void*, size_t, void*))sha1_hash; -+ final = (void (*)(void*, void*))sha1_end; -+ hash_len = 20; -+ } else { -+ bb_error_msg_and_die("algorithm not supported"); -+ } -+ -+ while (0 < (count = safe_read(src_fd, in_buf, 4096))) { -+ update(in_buf, count, &context); -+ } -+ -+ if (count == 0) { -+ final(in_buf, &context); -+ hash_value = hash_bin_to_hex(in_buf, hash_len); -+ } -+ -+ RELEASE_CONFIG_BUFFER(in_buf); -+ -+ if (src_fd != STDIN_FILENO) { -+ close(src_fd); -+ } -+ -+ return hash_value; -+} -+ -+ |