Merge branch 'debian'
[hcoop/debian/courier-authlib.git] / libs / random128 / random128binary.c
CommitLineData
d9898ee8 1/*
2** Copyright 2002 Double Precision, Inc.
3** See COPYING for distribution information.
4*/
5
6#if HAVE_CONFIG_H
7#include "config.h"
8#endif
9
10#if HAVE_UNISTD_H
11#include <unistd.h>
12#endif
13#include <ctype.h>
14#include <string.h>
15#include "random128.h"
16
d9898ee8 17
18static int nyb(char c)
19{
20 static const char xdigit[]="0123456789ABCDEF";
21
22 const char *p=strchr(xdigit, c);
23
24 if (p)
25 return (p-xdigit);
26 return 0;
27}
28
29void random128_binary(random128binbuf *bytes)
30{
31 char randombuf[ 128 / 8 * 2 + 1];
32 int i;
33
34 strcpy(randombuf, random128());
35
36 for (i=0; i<128/8; i++)
37 (*bytes)[i]=(nyb(randombuf[i*2]) << 4) | nyb(randombuf[i*2+1]);
38}