diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-06-23 16:33:38 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-06-27 23:42:20 +0200 |
commit | 8e6c1415d87272c0221ce328715fc0dd1dd3e032 (patch) | |
tree | b873e8b22ddd2c486f428fae15bc18f95755f78e /nix/libutil | |
parent | 8dc6c387852bb9505be44567a5f56913633cc23a (diff) |
daemon: Recognize SHA3 and BLAKE2s.
* nix/libutil/hash.hh (HashType): Add htSHA3_256, htSHA3_512, and
htBLAKE2s_256.
* nix/libutil/hash.cc (parseHashType, printHashType): Recognize them.
* tests/store.scm ("add-to-store"): Test these algorithms.
Diffstat (limited to 'nix/libutil')
-rw-r--r-- | nix/libutil/hash.cc | 6 | ||||
-rw-r--r-- | nix/libutil/hash.hh | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/nix/libutil/hash.cc b/nix/libutil/hash.cc index 20d2e4b724..7853acdd49 100644 --- a/nix/libutil/hash.cc +++ b/nix/libutil/hash.cc @@ -321,6 +321,9 @@ HashType parseHashType(const string & s) else if (s == "sha1") return htSHA1; else if (s == "sha256") return htSHA256; else if (s == "sha512") return htSHA512; + else if (s == "sha3-256") return htSHA3_256; + else if (s == "sha3-512") return htSHA3_512; + else if (s == "blake2s-256") return htBLAKE2s_256; else return htUnknown; } @@ -331,6 +334,9 @@ string printHashType(HashType ht) else if (ht == htSHA1) return "sha1"; else if (ht == htSHA256) return "sha256"; else if (ht == htSHA512) return "sha512"; + else if (ht == htSHA3_256) return "sha3-256"; + else if (ht == htSHA3_512) return "sha3-512"; + else if (ht == htBLAKE2s_256) return "blake2s-256"; else throw Error("cannot print unknown hash type"); } diff --git a/nix/libutil/hash.hh b/nix/libutil/hash.hh index 7357a34e1d..ac58651a02 100644 --- a/nix/libutil/hash.hh +++ b/nix/libutil/hash.hh @@ -16,7 +16,10 @@ typedef enum { htMD5 = GCRY_MD_MD5, htSHA1 = GCRY_MD_SHA1, htSHA256 = GCRY_MD_SHA256, - htSHA512 = GCRY_MD_SHA512 + htSHA512 = GCRY_MD_SHA512, + htSHA3_256 = GCRY_MD_SHA3_256, + htSHA3_512 = GCRY_MD_SHA3_512, + htBLAKE2s_256 = GCRY_MD_BLAKE2S_256 } HashType; struct Hash |