2 * lib/crypto/os/rnd_confoun.c
4 * Copyright 1990 by the Massachusetts Institute of Technology.
7 * Export of this software from the United States of America may
8 * require a specific license from the United States Government.
9 * It is the responsibility of any person or organization contemplating
10 * export to obtain such a license before exporting.
12 * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
13 * distribute this software and its documentation for any purpose and
14 * without fee is hereby granted, provided that the above copyright
15 * notice appear in all copies and that both that copyright notice and
16 * this permission notice appear in supporting documentation, and that
17 * the name of M.I.T. not be used in advertising or publicity pertaining
18 * to distribution of the software without specific, written prior
19 * permission. M.I.T. makes no representations about the suitability of
20 * this software for any purpose. It is provided "as is" without express
21 * or implied warranty.
24 * krb5_random_confounder()
29 #ifdef HAVE_SYS_TIME_H
31 #ifdef TIME_WITH_SYS_TIME
41 #define RAND_TYPE long
44 #if !defined(RAND_TYPE) && defined(HAVE_SRAND)
50 #if !defined(RAND_TYPE) && defined(HAVE_SRANDOM)
53 #define RAND_TYPE long
56 #if !defined(RAND_TYPE)
57 You need a random number generator!
61 * Generate a random confounder
64 krb5_random_confounder(size, fillin)
68 static int seeded = 0;
69 register krb5_octet *real_fill;
73 /* time() defined in 4.12.2.4, but returns a time_t, which is an
74 "arithmetic type" (4.12.1) */
75 rval = (RAND_TYPE) time(0);
85 real_fill = (krb5_octet *)fillin;
88 *real_fill = rval & 0xff;
92 *real_fill = (rval >> 8) & 0xff;