aboutsummaryrefslogtreecommitdiffstats
path: root/tools/gmp/Makefile
Commit message (Expand)AuthorAgeFilesLines
* tools: Fix compilation on x32 hostFelix Fietkau2014-10-251-0/+4
* gmp: update to 5.1.3Luka Perkov2013-10-211-2/+2
* gmp: upgrade to version 5.1.2Luka Perkov2013-06-031-2/+2
* gmp: upgrade to version 5.1.1Luka Perkov2013-02-281-3/+5
* tools/gmp enable parallel buildsFelix Fietkau2012-09-151-0/+2
* gmp: update to 5.0.5Luka Perkov2012-06-091-3/+3
* gmp: update to 5.0.4Florian Fainelli2012-04-021-4/+4
* tools: clean up Makefiles / make ccache workJohn Crispin2012-01-151-9/+0
* tools/gmp: update to version 5.0.1Alexandros C. Couloumbis2010-12-091-2/+2
* fix build error in tools on darwin on newer macs (patch by dirtyfreebooter)Felix Fietkau2010-09-051-5/+0
* tools: update gmp to 4.3.2Alexandros C. Couloumbis2010-04-241-3/+3
* gmp: upgrade to 4.3.1 and fix compile on 64-bit mac os xFelix Fietkau2009-09-251-2/+18
* clean up gmp and mpfrFelix Fietkau2009-04-061-23/+5
* build system refactoring in preparation for allowing packages to do host-buil...Felix Fietkau2009-02-221-8/+8
* add support for gcc v4.3.1 & v4.3.2 (closes: #3479), thanks to Luigi Mantellini!Nicolas Thill2009-01-211-0/+42
a id='n185' href='#n185'>185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215
diff -ruN busybox-1.1.1-old/coreutils/md5_sha1_sum.c busybox-1.1.1-new/coreutils/md5_sha1_sum.c
--- busybox-1.1.1-old/coreutils/md5_sha1_sum.c	2006-03-30 00:14:50.000000000 +0200
+++ busybox-1.1.1-new/coreutils/md5_sha1_sum.c	2006-03-29 23:46:51.000000000 +0200
@@ -15,80 +15,10 @@
 
 #include "busybox.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 char hash_length)
-{
-	int x, len, max;
-	unsigned char *hex_value;
-
-	max = (hash_length * 2) + 2;
-	hex_value = xmalloc(max);
-	for (x = len = 0; x < hash_length; x++) {
-		len += snprintf((char*)(hex_value + len), max - len, "%02x", hash_value[x]);
-	}
-	return (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*);
-	
-	if(strcmp(filename, "-") == 0) {
-		src_fd = STDIN_FILENO;
-	} else if(0 > (src_fd = open(filename, O_RDONLY))) {
-		bb_perror_msg("%s", filename);
-		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("algotithm not supported");
-	}
-	
-
-	while(0 < (count = read(src_fd, in_buf, sizeof in_buf))) {
-		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;
-}
-
 /* This could become a common function for md5 as well, by using md5_stream */
 static int hash_files(int argc, char **argv, hash_algo_t hash_algo)
 {
diff -ruN busybox-1.1.1-old/include/libbb.h busybox-1.1.1-new/include/libbb.h
--- busybox-1.1.1-old/include/libbb.h	2006-03-30 00:14:50.000000000 +0200
+++ busybox-1.1.1-new/include/libbb.h	2006-03-30 00:31:48.000000000 +0200
@@ -490,6 +490,12 @@
 void md5_hash(const void *data, size_t length, md5_ctx_t *ctx);
 void *md5_end(void *resbuf, md5_ctx_t *ctx);
 
+typedef enum { HASH_SHA1, HASH_MD5 } hash_algo_t;
+
+unsigned char *hash_bin_to_hex(unsigned char *hash_value, unsigned char hash_length);
+int hash_fd(int fd, hash_algo_t hash_algo, uint8_t *hash_value);
+uint8_t *hash_file(const char *filename, hash_algo_t hash_algo);
+
 /* busybox.h will include dmalloc later for us, else include it here.  */
 #if !defined _BB_INTERNAL_H_ && defined DMALLOC
 #include <dmalloc.h>
diff -ruN busybox-1.1.1-old/libbb/Makefile.in busybox-1.1.1-new/libbb/Makefile.in
--- busybox-1.1.1-old/libbb/Makefile.in	2006-03-30 00:14:50.000000000 +0200
+++ busybox-1.1.1-new/libbb/Makefile.in	2006-03-29 23:46:51.000000000 +0200
@@ -11,6 +11,7 @@
 
 LIBBB-n:=
 LIBBB-y:= \
+	hash.c \
 	bb_asprintf.c ask_confirmation.c change_identity.c chomp.c \
 	compare_string_array.c concat_path_file.c copy_file.c copyfd.c \
 	create_icmp_socket.c create_icmp6_socket.c \
diff -ruN busybox-1.1.1-old/libbb/hash.c busybox-1.1.1-new/libbb/hash.c
--- busybox-1.1.1-old/libbb/hash.c	1970-01-01 01:00:00.000000000 +0100
+++ busybox-1.1.1-new/libbb/hash.c	2006-03-30 00:35:54.000000000 +0200
@@ -0,0 +1,100 @@
+/*
+ *  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"
+
+unsigned char *hash_bin_to_hex(unsigned char *hash_value, unsigned char hash_length)
+{
+	int x, len, max;
+	unsigned char *hex_value;
+
+	max = (hash_length * 2) + 2;
+	hex_value = xmalloc(max);
+	for (x = len = 0; x < hash_length; x++) {
+		len += snprintf((char*)(hex_value + len), max - len, "%02x", hash_value[x]);
+	}
+	return (hex_value);
+}
+
+int hash_fd(int fd, hash_algo_t hash_algo, uint8_t *hash_value)
+{
+	int count, result = 0;
+	union _ctx_ {
+		sha1_ctx_t sha1;
+		md5_ctx_t md5;
+	} context;
+	RESERVE_CONFIG_UBUFFER(in_buf, 4096);
+	void (*update)(const void*, size_t, void*) = NULL;
+	void (*final)(void*, void*) = NULL;
+	
+	// figure specific hash algorithims
+	if(hash_algo==HASH_MD5) {
+		md5_begin(&context.md5);
+		update = (void (*)(const void*, size_t, void*))md5_hash;
+		final = (void (*)(void*, void*))md5_end;
+	} else if(hash_algo==HASH_SHA1) {
+		sha1_begin(&context.sha1);
+		update = (void (*)(const void*, size_t, void*))sha1_hash;
+		final = (void (*)(void*, void*))sha1_end;
+	}
+
+
+	while(0 < (count = read(fd, in_buf, sizeof in_buf))) {
+		update(in_buf, count, &context);
+		result += count;
+	}
+
+	if(count == 0) {
+		final(hash_value, &context);
+	}
+	
+	RELEASE_CONFIG_BUFFER(in_buf);
+	
+	return result;
+}
+
+uint8_t *hash_file(const char *filename, hash_algo_t hash_algo)
+{
+	int src_fd, hash_len;
+	RESERVE_CONFIG_UBUFFER(hash_buf, 20);
+	uint8_t *hash_value = NULL;
+	
+	if(ENABLE_MD5SUM && hash_algo==HASH_MD5) {
+		hash_len = 16;
+	} else if(ENABLE_SHA1SUM && hash_algo==HASH_SHA1) {
+		hash_len = 20;
+	} else {
+		bb_error_msg_and_die("algotithm not supported");
+	}
+
+	if(strcmp(filename, "-") == 0) {
+		src_fd = STDIN_FILENO;
+	} else if(0 > (src_fd = open(filename, O_RDONLY))) {
+		bb_perror_msg("%s", filename);
+		return NULL;
+	}
+
+	if(hash_fd(src_fd, hash_algo, hash_buf) > 0) {
+		hash_value = hash_bin_to_hex(hash_buf, hash_len);
+	}
+	
+	if(src_fd != STDIN_FILENO) {
+		close(src_fd);
+	}
+	
+	RELEASE_CONFIG_BUFFER(hash_buf);
+
+	return hash_value;
+}