mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-30 01:26:15 +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
|
// omitted: E O U T
|
||||||
const string base32Chars = "0123456789abcdfghijklmnpqrsvwxyz";
|
const string base32Chars = "0123456789abcdfghijklmnpqrsvwxyz";
|
||||||
|
|
||||||
|
|
||||||
string printHash32(const Hash & hash)
|
string printHash32(const Hash & hash)
|
||||||
{
|
{
|
||||||
unsigned int len = hashLength32(hash);
|
size_t len = hash.base32Len();
|
||||||
|
|
||||||
string s;
|
string s;
|
||||||
s.reserve(len);
|
s.reserve(len);
|
||||||
|
@ -136,7 +130,7 @@ string printHash16or32(const Hash & hash)
|
||||||
Hash parseHash32(HashType ht, const string & s)
|
Hash parseHash32(HashType ht, const string & s)
|
||||||
{
|
{
|
||||||
Hash hash(ht);
|
Hash hash(ht);
|
||||||
unsigned int len = hashLength32(ht);
|
size_t len = hash.base32Len();
|
||||||
assert(s.size() == len);
|
assert(s.size() == len);
|
||||||
|
|
||||||
for (unsigned int n = 0; n < len; ++n) {
|
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)
|
if (s.size() == hash.hashSize * 2)
|
||||||
/* hexadecimal representation */
|
/* hexadecimal representation */
|
||||||
hash = parseHash(ht, s);
|
hash = parseHash(ht, s);
|
||||||
else if (s.size() == hashLength32(hash))
|
else if (s.size() == hash.base32Len())
|
||||||
/* base-32 representation */
|
/* base-32 representation */
|
||||||
hash = parseHash32(ht, s);
|
hash = parseHash32(ht, s);
|
||||||
else
|
else
|
||||||
|
|
|
@ -40,6 +40,18 @@ struct Hash
|
||||||
|
|
||||||
/* For sorting. */
|
/* For sorting. */
|
||||||
bool operator < (const Hash & h) const;
|
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. */
|
/* Parse a hexadecimal representation of a hash code. */
|
||||||
Hash parseHash(HashType ht, const string & s);
|
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. */
|
/* Convert a hash to a base-32 representation. */
|
||||||
string printHash32(const Hash & hash);
|
string printHash32(const Hash & hash);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue