diff options
author | Damien Miller <djm@mindrot.org> | 2000-04-03 06:50:43 +0200 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2000-04-03 06:50:43 +0200 |
commit | 040f3831fcc4c2e338ab15cb55cb43d95deb390e (patch) | |
tree | 2e459b4d6e4aa4fe64bf59ae2cc4126533aa3385 /bsd-misc.c | |
parent | - Big OpenBSD CVS update (mainly beginnings of SSH2 infrastructure) (diff) | |
download | openssh-040f3831fcc4c2e338ab15cb55cb43d95deb390e.tar.xz openssh-040f3831fcc4c2e338ab15cb55cb43d95deb390e.zip |
- Wrote entropy collection routines for systems that lack /dev/random
and EGD
Diffstat (limited to 'bsd-misc.c')
-rw-r--r-- | bsd-misc.c | 68 |
1 files changed, 32 insertions, 36 deletions
diff --git a/bsd-misc.c b/bsd-misc.c index dd1f6a476..3186c86d8 100644 --- a/bsd-misc.c +++ b/bsd-misc.c @@ -1,38 +1,31 @@ /* -** -** OpenBSD replacement routines -** -** Damien Miller <djm@ibs.com.au> -** -** Copyright 1999 Damien Miller -** Copyright 1999 Internet Business Solutions -** -** Permission is hereby granted, free of charge, to any person -** obtaining a copy of this software and associated documentation -** files (the "Software"), to deal in the Software without -** restriction, including without limitation the rights to use, copy, -** modify, merge, publish, distribute, sublicense, and/or sell copies -** of the Software, and to permit persons to whom the Software is -** furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be -** included in all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -** KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -** WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -** AND NONINFRINGEMENT. IN NO EVENT SHALL DAMIEN MILLER OR INTERNET -** BUSINESS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -** OR OTHER DEALINGS IN THE SOFTWARE. -** -** Except as contained in this notice, the name of Internet Business -** Solutions shall not be used in advertising or otherwise to promote -** the sale, use or other dealings in this Software without prior -** written authorization from Internet Business Solutions. -** -*/ + * Copyright (c) 1999-2000 Damien Miller. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Markus Friedl. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #include "config.h" @@ -52,7 +45,7 @@ #include "xmalloc.h" #include "ssh.h" #include "bsd-misc.h" -#include "random.h" +#include "entropy.h" #ifndef HAVE_ARC4RANDOM @@ -125,8 +118,11 @@ void arc4random_stir(void) if (rc4 == NULL) rc4 = xmalloc(sizeof(*rc4)); + + seed_rng(); + RAND_bytes(rand_buf, sizeof(rand_buf)); + seed_rng(); - get_random_bytes(rand_buf, sizeof(rand_buf)); rc4_key(rc4, rand_buf, sizeof(rand_buf)); memset(rand_buf, 0, sizeof(rand_buf)); } |