aboutsummaryrefslogtreecommitdiff
path: root/src/libutil
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-09-20 16:15:32 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-09-20 16:15:32 +0000
commit0623359fbc67c421bf76b7433f92c7ef58050321 (patch)
treeb0621f97bbbea2ae2ad69a89284454aa1f0c85c0 /src/libutil
parent22d13d6ec27b02f98ca4e398fbae4f3273e97794 (diff)
* Print a better error message for wrong hashes (NIX-49).
Diffstat (limited to 'src/libutil')
-rw-r--r--src/libutil/hash.cc8
-rw-r--r--src/libutil/hash.hh3
2 files changed, 10 insertions, 1 deletions
diff --git a/src/libutil/hash.cc b/src/libutil/hash.cc
index 16597fd47..7381948f2 100644
--- a/src/libutil/hash.cc
+++ b/src/libutil/hash.cc
@@ -120,6 +120,12 @@ static unsigned char divMod(unsigned char * bytes, unsigned char y)
}
+unsigned int hashLength32(const Hash & hash)
+{
+ return (hash.hashSize * 8 - 1) / 5 + 1;
+}
+
+
// omitted: E O U T
const string base32Chars = "0123456789abcdfghijklmnpqrsvwxyz";
@@ -127,7 +133,7 @@ const string base32Chars = "0123456789abcdfghijklmnpqrsvwxyz";
string printHash32(const Hash & hash)
{
Hash hash2(hash);
- unsigned int len = (hash.hashSize * 8 - 1) / 5 + 1;
+ unsigned int len = hashLength32(hash);
const char * chars = base32Chars.c_str();
diff --git a/src/libutil/hash.hh b/src/libutil/hash.hh
index 95629bc9e..74ae51db3 100644
--- a/src/libutil/hash.hh
+++ b/src/libutil/hash.hh
@@ -49,6 +49,9 @@ string printHash(const Hash & hash);
/* Parse a hexadecimal representation of a hash code. */
Hash parseHash(HashType ht, const string & s);
+/* Returns the length of a base-32 hash representation. */
+unsigned int hashLength32(const Hash & hash);
+
/* Convert a hash to a base-32 representation. */
string printHash32(const Hash & hash);