diff options
author | Justus Winter <justus@gnupg.org> | 2017-06-02 00:47:07 +0200 |
---|---|---|
committer | Justus Winter <justus@gnupg.org> | 2017-06-03 16:17:08 +0200 |
commit | 29ff193d27436e52d8112903c882ebe52f071d88 (patch) | |
tree | 0a2b3b6ec7b0ce0d1ebbbd8db7508f7cb7bd7e42 /random/gnupg-bithelp.h | |
parent | ce6764db1e045421fc9a199a334f63318d9f79d2 (diff) | |
download | hurd-29ff193d27436e52d8112903c882ebe52f071d88.tar.gz hurd-29ff193d27436e52d8112903c882ebe52f071d88.tar.bz2 hurd-29ff193d27436e52d8112903c882ebe52f071d88.zip |
trans: New random translator.
Previously, the Hurd included a translator providing /dev/random and
/dev/urandom based on a source copy of the random number generator
found in classic GnuPG.
The new random translator is using the SHAKE128 algorithm from the
SHA-3 family as the underlying cryptographic primitive. Being a
sponge construction, it allows the extraction of arbitrary amounts of
pseudorandom data. It is continuously fed entropy by hashing system
state that is hard to predict.
* Makefile (prog-subdirs): Remove 'random'.
* NEWS: Update.
* random/Makefile: Delete file.
* random/TODO: Likewise.
* random/gnupg-bithelp.h: Likewise.
* random/gnupg-glue.h: Likewise.
* random/gnupg-random.c: Likewise.
* random/gnupg-random.h: Likewise.
* random/gnupg-rmd.h: Likewise.
* random/gnupg-rmd160.c: Likewise.
* random/random.h: Likewise.
* sutils/MAKEDEV.sh (random): Create node.
(urandom): The new translator is both secure and non-blocking. Create
a link from urandom to random for compatibility with Linux.
* trans/Makefile (targets): Add 'random'.
* trans/random.c: Move the skeleton of the old random translator here,
but replace the PRNG with SHAKE128. Remove all dubious attempts of
accounting for entropy. Do not block ever.
Diffstat (limited to 'random/gnupg-bithelp.h')
-rw-r--r-- | random/gnupg-bithelp.h | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/random/gnupg-bithelp.h b/random/gnupg-bithelp.h deleted file mode 100644 index 188db168..00000000 --- a/random/gnupg-bithelp.h +++ /dev/null @@ -1,41 +0,0 @@ -/* bithelp.h - Some bit manipulation helpers - * Copyright (C) 1999 Free Software Foundation, Inc. - * - * This file is part of GnuPG. - * - * GnuPG 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 2 of the License, or - * (at your option) any later version. - * - * GnuPG 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 this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ -#ifndef G10_BITHELP_H -#define G10_BITHELP_H - - -/**************** - * Rotate a 32 bit integer by n bytes - */ -#if defined(__GNUC__) && defined(__i386__) -static inline u32 -rol( u32 x, int n) -{ - __asm__("roll %%cl,%0" - :"=r" (x) - :"0" (x),"c" (n)); - return x; -} -#else - #define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) ) -#endif - - -#endif /*G10_BITHELP_H*/ |