summaryrefslogtreecommitdiffstats
path: root/bsd-misc.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2000-04-03 06:50:43 +0200
committerDamien Miller <djm@mindrot.org>2000-04-03 06:50:43 +0200
commit040f3831fcc4c2e338ab15cb55cb43d95deb390e (patch)
tree2e459b4d6e4aa4fe64bf59ae2cc4126533aa3385 /bsd-misc.c
parent - Big OpenBSD CVS update (mainly beginnings of SSH2 infrastructure) (diff)
downloadopenssh-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.c68
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));
}