summary refs log tree commit diff
path: root/nix/libutil/hash.hh
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-11-04 16:31:06 +0100
committerLudovic Courtès <ludo@gnu.org>2015-12-02 19:37:59 +0200
commit29d3242e5c428d3b0e8dc9db1c81cd4053e5271c (patch)
tree9265c393bba91ada32e17f33b0725f5aee5cddd8 /nix/libutil/hash.hh
parent79aa1a83054af1600ba235ddf305337b5df78271 (diff)
downloadguix-29d3242e5c428d3b0e8dc9db1c81cd4053e5271c.tar.gz
daemon: Support SHA-512 hashes.
Fixes #679.

Note: on x86_64, SHA-512 is considerably faster than SHA-256 (198 MB/s
versus 131 MB/s).

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'nix/libutil/hash.hh')
-rw-r--r--nix/libutil/hash.hh5
1 files changed, 3 insertions, 2 deletions
diff --git a/nix/libutil/hash.hh b/nix/libutil/hash.hh
index 8f099c4f07..6b5e47cd8a 100644
--- a/nix/libutil/hash.hh
+++ b/nix/libutil/hash.hh
@@ -7,19 +7,20 @@
 namespace nix {
 
 
-typedef enum { htUnknown, htMD5, htSHA1, htSHA256 } HashType;
+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;
 
 
 struct Hash
 {
-    static const unsigned int maxHashSize = 32;
+    static const unsigned int maxHashSize = 64;
     unsigned int hashSize;
     unsigned char hash[maxHashSize];