From f36e41e20badf3af260e271a0fec6e7ffa07b1df Mon Sep 17 00:00:00 2001 From: Conrad Meyer Date: Fri, 17 Aug 2018 00:27:56 +0000 Subject: [PATCH] Bring in compatibility glue for libsodium The idea is untouched upstream sources live in sys/contrib/libsodium. sys/crypto/libsodium are support routines or compatibility headers to allow building unmodified upstream code. This is not yet integrated into the build system, so no functional change. --- sys/crypto/libsodium/limits.h | 3 +++ sys/crypto/libsodium/randombytes.c | 13 +++++++++++++ sys/crypto/libsodium/stddef.h | 3 +++ sys/crypto/libsodium/stdint.h | 3 +++ sys/crypto/libsodium/stdio.h | 2 ++ sys/crypto/libsodium/stdlib.h | 2 ++ sys/crypto/libsodium/string.h | 2 ++ sys/crypto/libsodium/utils.c | 14 ++++++++++++++ 8 files changed, 42 insertions(+) create mode 100644 sys/crypto/libsodium/limits.h create mode 100644 sys/crypto/libsodium/randombytes.c create mode 100644 sys/crypto/libsodium/stddef.h create mode 100644 sys/crypto/libsodium/stdint.h create mode 100644 sys/crypto/libsodium/stdio.h create mode 100644 sys/crypto/libsodium/stdlib.h create mode 100644 sys/crypto/libsodium/string.h create mode 100644 sys/crypto/libsodium/utils.c diff --git a/sys/crypto/libsodium/limits.h b/sys/crypto/libsodium/limits.h new file mode 100644 index 000000000000..854356796321 --- /dev/null +++ b/sys/crypto/libsodium/limits.h @@ -0,0 +1,3 @@ +/* This file is in the public domain */ +/* $FreeBSD$ */ +#include diff --git a/sys/crypto/libsodium/randombytes.c b/sys/crypto/libsodium/randombytes.c new file mode 100644 index 000000000000..7c5f5caff5ce --- /dev/null +++ b/sys/crypto/libsodium/randombytes.c @@ -0,0 +1,13 @@ +/* This file is in the public domain. */ + +#include +__FBSDID("$FreeBSD$"); +#include + +#include + +void +randombytes_buf(void *buf, size_t size) +{ + arc4random_buf(buf, size); +} diff --git a/sys/crypto/libsodium/stddef.h b/sys/crypto/libsodium/stddef.h new file mode 100644 index 000000000000..3f5dd97fecd8 --- /dev/null +++ b/sys/crypto/libsodium/stddef.h @@ -0,0 +1,3 @@ +/* This file is in the public domain */ +/* $FreeBSD$ */ +#include diff --git a/sys/crypto/libsodium/stdint.h b/sys/crypto/libsodium/stdint.h new file mode 100644 index 000000000000..98a50290f0f2 --- /dev/null +++ b/sys/crypto/libsodium/stdint.h @@ -0,0 +1,3 @@ +/* This file is in the public domain */ +/* $FreeBSD$ */ +#include diff --git a/sys/crypto/libsodium/stdio.h b/sys/crypto/libsodium/stdio.h new file mode 100644 index 000000000000..69f4ed52d7e0 --- /dev/null +++ b/sys/crypto/libsodium/stdio.h @@ -0,0 +1,2 @@ +/* This file is in the public domain */ +/* $FreeBSD$ */ diff --git a/sys/crypto/libsodium/stdlib.h b/sys/crypto/libsodium/stdlib.h new file mode 100644 index 000000000000..69f4ed52d7e0 --- /dev/null +++ b/sys/crypto/libsodium/stdlib.h @@ -0,0 +1,2 @@ +/* This file is in the public domain */ +/* $FreeBSD$ */ diff --git a/sys/crypto/libsodium/string.h b/sys/crypto/libsodium/string.h new file mode 100644 index 000000000000..69f4ed52d7e0 --- /dev/null +++ b/sys/crypto/libsodium/string.h @@ -0,0 +1,2 @@ +/* This file is in the public domain */ +/* $FreeBSD$ */ diff --git a/sys/crypto/libsodium/utils.c b/sys/crypto/libsodium/utils.c new file mode 100644 index 000000000000..4743ba296e09 --- /dev/null +++ b/sys/crypto/libsodium/utils.c @@ -0,0 +1,14 @@ +/* This file is in the public domain. */ + +#include +__FBSDID("$FreeBSD$"); +#include +#include + +#include + +void +sodium_memzero(void *b, size_t n) +{ + explicit_bzero(b, n); +}