2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Moved generateRandomKey() from bittorrent_helper to util.
	* src/DHTBucket.cc
	* src/DHTNode.cc
	* src/bittorrent_helper.cc
	* src/bittorrent_helper.h
	* src/util.cc
	* src/util.h
pull/1/head
Tatsuhiro Tsujikawa 2010-01-17 10:05:53 +00:00
parent b08585ebe2
commit 87b18019b4
7 changed files with 26 additions and 12 deletions

View File

@ -1,3 +1,13 @@
2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Moved generateRandomKey() from bittorrent_helper to util.
* src/DHTBucket.cc
* src/DHTNode.cc
* src/bittorrent_helper.cc
* src/bittorrent_helper.h
* src/util.cc
* src/util.h
2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Updated doc about GID.

View File

@ -74,10 +74,10 @@ DHTBucket::~DHTBucket() {}
void DHTBucket::getRandomNodeID(unsigned char* nodeID) const
{
if(_prefixLength == 0) {
bittorrent::generateRandomKey(nodeID);
util::generateRandomKey(nodeID);
} else {
size_t lastByteIndex = (_prefixLength-1)/8;
bittorrent::generateRandomKey(nodeID);
util::generateRandomKey(nodeID);
memcpy(nodeID, _min, lastByteIndex+1);
}
}

View File

@ -54,7 +54,7 @@ DHTNode::DHTNode(const unsigned char* id):_port(0), _rtt(0), _condition(1), _las
void DHTNode::generateID()
{
bittorrent::generateRandomKey(_id);
util::generateRandomKey(_id);
}
bool DHTNode::operator==(const DHTNode& node) const

View File

@ -853,13 +853,6 @@ void assertID
}
}
void generateRandomKey(unsigned char* key)
{
unsigned char bytes[40];
util::generateRandomData(bytes, sizeof(bytes));
MessageDigestHelper::digest(key, 20, MessageDigestContext::SHA1, bytes, sizeof(bytes));
}
BDE parseMagnet(const std::string& magnet)
{
BDE result;

View File

@ -228,8 +228,6 @@ void assertPayloadLengthEqual
void assertID
(uint8_t expected, const unsigned char* data, const std::string& msgName);
void generateRandomKey(unsigned char* key);
// Converts attrs into torrent data. attrs must be a BDE::dict. This
// function does not guarantee the returned string is valid torrent
// data.

View File

@ -75,6 +75,7 @@
#include "A2STR.h"
#include "array_fun.h"
#include "a2functional.h"
#include "MessageDigestHelper.h"
// For libc6 which doesn't define ULLONG_MAX properly because of broken limits.h
#ifndef ULLONG_MAX
@ -1017,6 +1018,14 @@ std::string fixTaintedBasename(const std::string& src)
A2STR::BACK_SLASH_C, A2STR::UNDERSCORE_C);
}
void generateRandomKey(unsigned char* key)
{
unsigned char bytes[40];
generateRandomData(bytes, sizeof(bytes));
MessageDigestHelper::digest
(key, 20, MessageDigestContext::SHA1, bytes, sizeof(bytes));
}
} // namespace util
} // namespace aria2

View File

@ -371,6 +371,10 @@ std::string applyDir(const std::string& dir, const std::string& relPath);
// replaces '/' and '\' with '_'.
std::string fixTaintedBasename(const std::string& src);
// Generates 20 bytes random key and store it to the address pointed
// by key. Caller must allocate at least 20 bytes for generated key.
void generateRandomKey(unsigned char* key);
} // namespace util
} // namespace aria2