GNU bug report logs -
#42020
[PATCH 0/4] Add daemon support for SHA3 and BLAKE2s
Previous Next
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Tue, 23 Jun 2020 15:37:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 42020 <at> debbugs.gnu.org (full text, mbox):
* nix/libutil/hash.hh (HashType): Map directly to GCRY_MD_ values.
(md5HashSize, sha1HashSize, sha256HashSize, sha512HashSize): Remove.
* nix/libutil/hash.cc (Hash::Hash): Use 'gcry_md_get_algo_dlen'.
---
nix/libutil/hash.cc | 8 +++-----
nix/libutil/hash.hh | 17 +++++++++--------
2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/nix/libutil/hash.cc b/nix/libutil/hash.cc
index ea69aa64f9..251f18f60e 100644
--- a/nix/libutil/hash.cc
+++ b/nix/libutil/hash.cc
@@ -38,11 +38,9 @@ Hash::Hash()
Hash::Hash(HashType type)
{
this->type = type;
- if (type == htMD5) hashSize = md5HashSize;
- else if (type == htSHA1) hashSize = sha1HashSize;
- else if (type == htSHA256) hashSize = sha256HashSize;
- else if (type == htSHA512) hashSize = sha512HashSize;
- else throw Error("unknown hash type");
+ hashSize = gcry_md_get_algo_dlen(type);
+
+ if (hashSize == 0) throw Error("unknown hash type");
assert(hashSize <= maxHashSize);
memset(hash, 0, maxHashSize);
}
diff --git a/nix/libutil/hash.hh b/nix/libutil/hash.hh
index 6b5e47cd8a..7357a34e1d 100644
--- a/nix/libutil/hash.hh
+++ b/nix/libutil/hash.hh
@@ -1,5 +1,7 @@
#pragma once
+#include <gcrypt.h>
+
#include "types.hh"
#include "serialise.hh"
@@ -7,16 +9,15 @@
namespace nix {
-typedef enum { htUnknown, htMD5, htSHA1, htSHA256, htSHA512 } HashType;
-
-
-const int md5HashSize = 16;
-const int sha1HashSize = 20;
-const int sha256HashSize = 32;
-const int sha512HashSize = 64;
-
extern const string base32Chars;
+typedef enum {
+ htUnknown = 0,
+ htMD5 = GCRY_MD_MD5,
+ htSHA1 = GCRY_MD_SHA1,
+ htSHA256 = GCRY_MD_SHA256,
+ htSHA512 = GCRY_MD_SHA512
+} HashType;
struct Hash
{
--
2.26.2
This bug report was last modified 4 years and 328 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.