From e7372290e93e2fa26237e2ecbe257c8ccc4dce30 Mon Sep 17 00:00:00 2001 From: zyp Date: Fri, 27 Oct 2006 11:30:01 +0000 Subject: [project @ zyp-20061027113001-b3ca581e0efa4fa6] [project @ 65] This should not be here. --- hash/Makefile | 27 ---------------- hash/__init__.py | 11 ------- hash/crc32.cpp | 41 ------------------------- hash/crc32.h | 11 ------- hash/ed2k.cpp | 41 ------------------------- hash/ed2k.h | 17 ----------- hash/hash.cpp | 85 --------------------------------------------------- hash/hash.h | 37 ---------------------- hash/hash_wrapper.cpp | 14 --------- 9 files changed, 284 deletions(-) delete mode 100644 hash/Makefile delete mode 100644 hash/__init__.py delete mode 100644 hash/crc32.cpp delete mode 100644 hash/crc32.h delete mode 100644 hash/ed2k.cpp delete mode 100644 hash/ed2k.h delete mode 100644 hash/hash.cpp delete mode 100644 hash/hash.h delete mode 100644 hash/hash_wrapper.cpp diff --git a/hash/Makefile b/hash/Makefile deleted file mode 100644 index 0d897d0..0000000 --- a/hash/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -CC=gcc -CFLAGS= -CPP=g++ -CPPFLAGS= -LD=gcc -LDFLAGS=-shared - -OBJECTS=hash_wrapper.o hash.o crc32.o ed2k.o -TARGET=_hash.so -INCLUDE=-I /usr/include/python2.4/ -LIB=-l boost_python -l ssl - -all: $(TARGET) - -clean: - -rm $(TARGET) $(OBJECTS) - -# Mål-regel -$(TARGET): $(OBJECTS) Makefile - $(LD) $(LDFLAGS) -o $(TARGET) $(OBJECTS) $(LIB) - -# Pseudoregler -%.o: %.c Makefile - $(CC) $(CFLAGS) -o $@ -c $< $(INCLUDE) - -%.o: %.cpp Makefile - $(CPP) $(CPPFLAGS) -o $@ -c $< $(INCLUDE) \ No newline at end of file diff --git a/hash/__init__.py b/hash/__init__.py deleted file mode 100644 index 0fc1715..0000000 --- a/hash/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from _hash import * - -def file_hash(name): - h = Hash() - f = open(name) - data = f.read(32768) - while data: - h.update(data) - data = f.read(32768) - f.close() - return h diff --git a/hash/crc32.cpp b/hash/crc32.cpp deleted file mode 100644 index 55d6dd2..0000000 --- a/hash/crc32.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "crc32.h" - -int* CRC32::crc_table; - -int* CRC32::generate_table() { - int crc; - int* table = new int[256]; - for(int i = 0; i < 256; i++) { - crc = i << 24; - for(int j = 0; j < 8; j++) { - if(crc & 0x80000000) { - crc = (crc << 1) ^ 0x04c11db7; - } else { - crc = crc << 1; - } - } - table[i] = crc; - } - return table; -} - -int CRC32::reflect(int data, int bits) { - int x = 0; - for(int i = 0; i < bits; i++) { - x = x << 1; - x |= data & 1; - data = data >> 1; - } - return x; -} - -int CRC32::crc32(int crc, const char* data, int length) { - crc = ~reflect(crc, 32); - if(!crc_table) { - crc_table = generate_table(); - } - for (int i = 0; i < length; i++) { - crc = (crc << 8) ^ crc_table[((crc >> 24) ^ reflect(data[i], 8)) & 0xff]; - } - return ~reflect(crc, 32); -} diff --git a/hash/crc32.h b/hash/crc32.h deleted file mode 100644 index 646ccce..0000000 --- a/hash/crc32.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _CRC32_H_ -#define _CRC32_H_ - -namespace CRC32 { - extern int* crc_table; - int* generate_table(); - int reflect(int data, int bits); - int crc32(int crc, const char* data, int length); -} - -#endif // _CRC32_H_ diff --git a/hash/ed2k.cpp b/hash/ed2k.cpp deleted file mode 100644 index 92e7b15..0000000 --- a/hash/ed2k.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "ed2k.h" - -template -inline T min(T a, T b) { - return (a > b) ? b : a; -} - -Ed2k::Ed2k() { - MD4_Init(&md4_partial); - MD4_Init(&md4_final); - size_total = 0; -} - -void Ed2k::update(const char* data, int length) { - while(length) { - if(!(size_total % (9500 * 1024)) && size_total) { - unsigned char digest[16]; - MD4_Final(digest, &md4_partial); - MD4_Update(&md4_final, digest, 16); - MD4_Init(&md4_partial); - } - int size = min(length, (9500 * 1024) - (size_total % (9500 * 1024))); - MD4_Update(&md4_partial, data, size); - length -= size; - data += size; - size_total += size; - }; -} - -char* Ed2k::digest() { - char* digest = new char[16]; - if(size_total > (9500 * 1024)) { - unsigned char digest_partial[16]; - MD4_Final(digest_partial, &md4_partial); - MD4_Update(&md4_final, digest_partial, 16); - MD4_Final((unsigned char*)digest, &md4_final); - } else { - MD4_Final((unsigned char*)digest, &md4_partial); - } - return digest; -} diff --git a/hash/ed2k.h b/hash/ed2k.h deleted file mode 100644 index 1be7302..0000000 --- a/hash/ed2k.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _ED2K_H_ -#define _ED2K_H_ - -#include - -class Ed2k { - private: - MD4_CTX md4_partial; - MD4_CTX md4_final; - unsigned int size_total; - public: - Ed2k(); - void update(const char* data, int length); - char* digest(); -}; - -#endif // _ED2K_H_ diff --git a/hash/hash.cpp b/hash/hash.cpp deleted file mode 100644 index d844c46..0000000 --- a/hash/hash.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include "hash.h" -#include "crc32.h" - -#include - -namespace Hex { - static char* digits = "0123456789abcdef"; - std::string hex(char* bin, int length) { - std::string s(length * 2, ' '); - for(int i = 0; i < length; i++) { - s[i*2] = digits[(bin[i] >> 4) & 0xf]; - s[i*2+1] = digits[bin[i] & 0xf]; - } - return s; - } - std::string hex(int bin) { - std::string s(sizeof(int) * 2, ' '); - for(int i = 0; i < sizeof(int) * 2; i++) { - s[sizeof(int) * 2 - 1 - i] = digits[bin & 0xf]; - bin = bin >> 4; - } - return s; - } -} - -Hash::Hash() { - finished = false; - - crc32_ctx = 0; - crc32_str = ""; - - ed2k_str = ""; - - MD5_Init(&md5_ctx); - md5_str = ""; - - SHA1_Init(&sha1_ctx); - sha1_str = ""; -} - -void Hash::update(std::string data) { - if(finished) { - throw std::runtime_error("Can't update after digest."); - } - crc32_ctx = CRC32::crc32(crc32_ctx, data.c_str(), data.length()); - ed2k_ctx.update(data.c_str(), data.length()); - MD5_Update(&md5_ctx, data.c_str(), data.length()); - SHA1_Update(&sha1_ctx, data.c_str(), data.length()); -} - -std::string Hash::crc32() { - return Hex::hex(crc32_ctx); -} - -std::string Hash::ed2k() { - if(!ed2k_str.length()) { - finished = true; - char* digest = ed2k_ctx.digest(); - ed2k_str = Hex::hex(digest, 16); - delete digest; - } - return ed2k_str; -} - -std::string Hash::md5() { - if(!md5_str.length()) { - finished = true; - char* digest = new char[16]; - MD5_Final((unsigned char*)digest, &md5_ctx); - md5_str = Hex::hex(digest, 16); - delete digest; - } - return md5_str; -} - -std::string Hash::sha1() { - if(!sha1_str.length()) { - finished = true; - char* digest = new char[20]; - SHA1_Final((unsigned char*)digest, &sha1_ctx); - sha1_str = Hex::hex(digest, 20); - delete digest; - } - return sha1_str; -} diff --git a/hash/hash.h b/hash/hash.h deleted file mode 100644 index 3c7b9c9..0000000 --- a/hash/hash.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _HASH_H_ -#define _HASH_H_ - -#include - -#include "ed2k.h" - -#include -#include -#include - -class Hash { - private: - bool finished; - - int crc32_ctx; - std::string crc32_str; - - Ed2k ed2k_ctx; - std::string ed2k_str; - - MD5_CTX md5_ctx; - std::string md5_str; - - SHA_CTX sha1_ctx; - std::string sha1_str; - - public: - Hash(); - void update(std::string data); - std::string crc32(); - std::string ed2k(); - std::string md5(); - std::string sha1(); -}; - -#endif // _HASH_H_ diff --git a/hash/hash_wrapper.cpp b/hash/hash_wrapper.cpp deleted file mode 100644 index a4173b9..0000000 --- a/hash/hash_wrapper.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "hash.h" - -#include -using namespace boost::python; - -BOOST_PYTHON_MODULE(_hash) -{ - class_("Hash") - .def("update", &Hash::update) - .def("crc32", &Hash::crc32) - .def("ed2k", &Hash::ed2k) - .def("md5", &Hash::md5) - .def("sha1", &Hash::sha1); -} -- cgit v1.2.3