diff options
author | Sunil Nimmagadda <sunil@sunilnimmagadda.com> | 2013-10-25 10:27:53 +0530 |
---|---|---|
committer | Sunil Nimmagadda <sunil@sunilnimmagadda.com> | 2013-10-25 10:27:53 +0530 |
commit | 9140258223150a922baa07c589ed5924a99131cc (patch) | |
tree | cdb0c0dae27f4fee6601c2b414d502667d2edc2d /contrib | |
parent | Implement simple encrypt utility. (diff) | |
download | OpenSMTPD-9140258223150a922baa07c589ed5924a99131cc.tar.xz OpenSMTPD-9140258223150a922baa07c589ed5924a99131cc.zip |
Use chacha_random instead of libc's random.
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/libexec/encrypt/Makefile.am | 13 | ||||
-rw-r--r-- | contrib/libexec/encrypt/encrypt.c | 5 |
2 files changed, 15 insertions, 3 deletions
diff --git a/contrib/libexec/encrypt/Makefile.am b/contrib/libexec/encrypt/Makefile.am index 7d7062f4..e331fd53 100644 --- a/contrib/libexec/encrypt/Makefile.am +++ b/contrib/libexec/encrypt/Makefile.am @@ -2,6 +2,17 @@ pkglibexec_PROGRAMS = encrypt encrypt_SOURCES = encrypt.c -CFLAGS += -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED +INCLUDES = -I$(top_srcdir)/openbsd-compat + +LIBCOMPAT = $(top_builddir)/openbsd-compat/libopenbsd-compat.a + +LDADD = $(LIBCOMPAT) + +# need to define _GNU_SOURCE to get: +# EAI_NODATA defined +# {v,}asprintf +# setres{g,u}id +CFLAGS += -D_GNU_SOURCE -D_XOPEN_SOURCE + uninstall-hook: rmdir $(DESTDIR)$(pkglibexecdir) 2> /dev/null || /bin/true diff --git a/contrib/libexec/encrypt/encrypt.c b/contrib/libexec/encrypt/encrypt.c index 743b4474..74da6fde 100644 --- a/contrib/libexec/encrypt/encrypt.c +++ b/contrib/libexec/encrypt/encrypt.c @@ -16,9 +16,10 @@ */ #include <stdio.h> -#include <stdlib.h> #include <unistd.h> +#include "openbsd-compat.h" + #define PASSWORD_LEN 128 static unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */ @@ -36,7 +37,7 @@ main(int argc, char *argv[]) return (1); } - to64(&salt[0], random(), 2); + to64(&salt[0], chacha_random(), 2); salt[2] = '\0'; if ((c = crypt(argv[1], salt)) == NULL) { fprintf(stderr, "crypt failed"); |