summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hash.cpp85
-rw-r--r--src/hash.h37
-rw-r--r--src/hash_wrapper.cpp14
3 files changed, 0 insertions, 136 deletions
diff --git a/src/hash.cpp b/src/hash.cpp
deleted file mode 100644
index d844c46..0000000
--- a/src/hash.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "hash.h"
-#include "crc32.h"
-
-#include <stdexcept>
-
-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/src/hash.h b/src/hash.h
deleted file mode 100644
index 3c7b9c9..0000000
--- a/src/hash.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _HASH_H_
-#define _HASH_H_
-
-#include <string>
-
-#include "ed2k.h"
-
-#include <openssl/md4.h>
-#include <openssl/md5.h>
-#include <openssl/sha.h>
-
-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/src/hash_wrapper.cpp b/src/hash_wrapper.cpp
deleted file mode 100644
index a4173b9..0000000
--- a/src/hash_wrapper.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "hash.h"
-
-#include <boost/python.hpp>
-using namespace boost::python;
-
-BOOST_PYTHON_MODULE(_hash)
-{
- class_<Hash>("Hash")
- .def("update", &Hash::update)
- .def("crc32", &Hash::crc32)
- .def("ed2k", &Hash::ed2k)
- .def("md5", &Hash::md5)
- .def("sha1", &Hash::sha1);
-}