diff options
Diffstat (limited to 'contrib/opie/libopie/randomchallenge.c')
-rw-r--r-- | contrib/opie/libopie/randomchallenge.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/contrib/opie/libopie/randomchallenge.c b/contrib/opie/libopie/randomchallenge.c new file mode 100644 index 0000000..6e0d5b7 --- /dev/null +++ b/contrib/opie/libopie/randomchallenge.c @@ -0,0 +1,43 @@ +/* randomchallenge.c: The opierandomchallenge() library function. + +%%% portions-copyright-cmetz +Portions of this software are Copyright 1996 by Craig Metz, All Rights +Reserved. The Inner Net License Version 2 applies to these portions of +the software. +You should have received a copy of the license with this software. If +you didn't get a copy, you may request one from <license@inner.net>. + +Portions of this software are Copyright 1995 by Randall Atkinson and Dan +McDonald, All Rights Reserved. All Rights under this copyright are assigned +to the U.S. Naval Research Laboratory (NRL). The NRL Copyright Notice and +License Agreement applies to this software. + + History: + + Modified by cmetz for OPIE 2.3. Add sha support. + Modified by cmetz for OPIE 2.22. Don't include stdio.h. + Use opienewseed(). Don't include unneeded headers. + Modified by cmetz for OPIE 2.2. Use FUNCTION declaration et al. + Changed use of gethostname() to uname(). Ifdefed around some + headers. + Created at NRL for OPIE 2.2 from opiesubr2.c +*/ + +#include "opie_cfg.h" +#include "opie.h" + +static char *algids[] = { NULL, NULL, NULL, "sha1", "md4", "md5" }; + +/* Generate a random challenge */ +/* This could grow into quite a monster, really. Random is good enough for + most situations; it is certainly better than a fixed string */ +VOIDRET opierandomchallenge FUNCTION((prompt), char *prompt) +{ + char buf[OPIE_SEED_MAX + 1]; + + buf[0] = 0; + if (opienewseed(buf)) + strcpy(buf, "ke4452"); + + sprintf(prompt, "otp-%s %d %s", algids[MDX], (rand() % 499) + 1, buf); +} |