diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 |
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 |
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /random128/random128binary.c | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2 | |
Initial checkin
Imported from subversion report, converted to git. Updated all paths in
scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'random128/random128binary.c')
| -rw-r--r-- | random128/random128binary.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/random128/random128binary.c b/random128/random128binary.c new file mode 100644 index 0000000..e59218c --- /dev/null +++ b/random128/random128binary.c @@ -0,0 +1,38 @@ +/* +** Copyright 2002 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#if HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <ctype.h> +#include <string.h> +#include "random128.h" + + +static int nyb(char c) +{ + static const char xdigit[]="0123456789ABCDEF"; + + const char *p=strchr(xdigit, c); + + if (p) + return (p-xdigit); + return 0; +} + +void random128_binary(random128binbuf *bytes) +{ + char randombuf[ 128 / 8 * 2 + 1]; + int i; + + strcpy(randombuf, random128()); + + for (i=0; i<128/8; i++) + (*bytes)[i]=(nyb(randombuf[i*2]) << 4) | nyb(randombuf[i*2+1]); +} |
