diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2015-11-04 16:31:06 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-12-02 19:37:59 +0200 |
commit | 29d3242e5c428d3b0e8dc9db1c81cd4053e5271c (patch) | |
tree | 9265c393bba91ada32e17f33b0725f5aee5cddd8 /nix/libutil/sha512.h | |
parent | 79aa1a83054af1600ba235ddf305337b5df78271 (diff) |
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/sha512.h')
-rw-r--r-- | nix/libutil/sha512.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/nix/libutil/sha512.h b/nix/libutil/sha512.h new file mode 100644 index 0000000000..d2abab4c5f --- /dev/null +++ b/nix/libutil/sha512.h @@ -0,0 +1,35 @@ +/* GNU Guix --- Functional package management for GNU + Copyright (C) 2012, 2015 Ludovic Courtès <ludo@gnu.org> + + This file is part of GNU Guix. + + GNU Guix is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or (at + your option) any later version. + + GNU Guix is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. */ + +#include <gcrypt-hash.hh> + +#define SHA512_CTX guix_hash_context + +static inline void +SHA512_Init (struct SHA512_CTX *ctx) +{ + guix_hash_init (ctx, GCRY_MD_SHA512); +} + +#define SHA512_Update guix_hash_update + +static inline void +SHA512_Final (void *resbuf, struct SHA512_CTX *ctx) +{ + guix_hash_final (resbuf, ctx, GCRY_MD_SHA512); +} |