aboutsummaryrefslogtreecommitdiffstats
path: root/package/busybox/patches/501-libbb_hash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/patches/501-libbb_hash.patch')
-rw-r--r--package/busybox/patches/501-libbb_hash.patch185
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 53bf2be2e8..0000000000
--- 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;
-+}
-+
-+