aboutsummaryrefslogtreecommitdiff
path: root/random/random.h
diff options
context:
space:
mode:
authorJustus Winter <justus@gnupg.org>2017-06-02 00:47:07 +0200
committerJustus Winter <justus@gnupg.org>2017-06-03 16:17:08 +0200
commit29ff193d27436e52d8112903c882ebe52f071d88 (patch)
tree0a2b3b6ec7b0ce0d1ebbbd8db7508f7cb7bd7e42 /random/random.h
parentce6764db1e045421fc9a199a334f63318d9f79d2 (diff)
downloadhurd-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/random.h')
-rw-r--r--random/random.h32
1 files changed, 0 insertions, 32 deletions
diff --git a/random/random.h b/random/random.h
deleted file mode 100644
index a38a4177..00000000
--- a/random/random.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* random.c - A single-file translator providing random data
- Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
-
- This program 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, or (at
- your option) any later version.
-
- This program 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 __RANDOM_H__
-#define __RANDOM_H__
-
-/* How many random bytes to gather at most.
- XXX: Should be at least POOLSIZE. */
-#define GATHERBUFSIZE 32768
-
-/* The random bytes we collected. */
-extern char gatherbuf[GATHERBUFSIZE];
-
-/* The current positions in gatherbuf[]. */
-extern int gatherrpos;
-extern int gatherwpos;
-
-#endif