mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-26 07:46:21 +02:00
Make hashLength32() a method of Hash
This commit is contained in:
parent
5b8c09c124
commit
d45ad8fcf5
2 changed files with 15 additions and 12 deletions
|
@ -96,19 +96,13 @@ Hash parseHash(HashType ht, const string & s)
|
|||
}
|
||||
|
||||
|
||||
unsigned int hashLength32(const Hash & hash)
|
||||
{
|
||||
return (hash.hashSize * 8 - 1) / 5 + 1;
|
||||
}
|
||||
|
||||
|
||||
// omitted: E O U T
|
||||
const string base32Chars = "0123456789abcdfghijklmnpqrsvwxyz";
|
||||
|
||||
|
||||
string printHash32(const Hash & hash)
|
||||
{
|
||||
unsigned int len = hashLength32(hash);
|
||||
size_t len = hash.base32Len();
|
||||
|
||||
string s;
|
||||
s.reserve(len);
|
||||
|
@ -136,7 +130,7 @@ string printHash16or32(const Hash & hash)
|
|||
Hash parseHash32(HashType ht, const string & s)
|
||||
{
|
||||
Hash hash(ht);
|
||||
unsigned int len = hashLength32(ht);
|
||||
size_t len = hash.base32Len();
|
||||
assert(s.size() == len);
|
||||
|
||||
for (unsigned int n = 0; n < len; ++n) {
|
||||
|
@ -163,7 +157,7 @@ Hash parseHash16or32(HashType ht, const string & s)
|
|||
if (s.size() == hash.hashSize * 2)
|
||||
/* hexadecimal representation */
|
||||
hash = parseHash(ht, s);
|
||||
else if (s.size() == hashLength32(hash))
|
||||
else if (s.size() == hash.base32Len())
|
||||
/* base-32 representation */
|
||||
hash = parseHash32(ht, s);
|
||||
else
|
||||
|
|
|
@ -40,6 +40,18 @@ struct Hash
|
|||
|
||||
/* For sorting. */
|
||||
bool operator < (const Hash & h) const;
|
||||
|
||||
/* Returns the length of a base-16 representation of this hash. */
|
||||
size_t base16Len() const
|
||||
{
|
||||
return hashSize * 2;
|
||||
}
|
||||
|
||||
/* Returns the length of a base-32 representation of this hash. */
|
||||
size_t base32Len() const
|
||||
{
|
||||
return (hashSize * 8 - 1) / 5 + 1;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -49,9 +61,6 @@ 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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue