diff options
Diffstat (limited to 'package')
| -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; -+} -+ -+  | 
