+ sodium_library_minimal() and SODIUM_LIBRARY_MINIMAL

This commit is contained in:
Frank Denis 2017-03-06 09:47:09 +01:00
parent 8465469167
commit 8679e717db
8 changed files with 38 additions and 7 deletions

View File

@ -30,6 +30,7 @@ function can especially be useful to write reproducible tests.
- `contrib/Findsodium.cmake` was added as an example to include - `contrib/Findsodium.cmake` was added as an example to include
libsodium in a project using cmake. libsodium in a project using cmake.
- Compatibility with gcc 2.x has been restored. - Compatibility with gcc 2.x has been restored.
- Minimal builds can be checked using `sodium_library_minimal()`.
* Version 1.0.11 * Version 1.0.11
- `sodium_init()` is now thread-safe, and can be safely called multiple - `sodium_init()` is now thread-safe, and can be safely called multiple

View File

@ -22,6 +22,9 @@ int sodium_library_version_major(void);
SODIUM_EXPORT SODIUM_EXPORT
int sodium_library_version_minor(void); int sodium_library_version_minor(void);
SODIUM_EXPORT
int sodium_library_minimal(void);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -102,6 +102,7 @@ AC_ARG_ENABLE(minimal,
[ [
AS_IF([test "x$enableval" = "xyes"], [ AS_IF([test "x$enableval" = "xyes"], [
enable_minimal="yes" enable_minimal="yes"
SODIUM_LIBRARY_MINIMAL_DEF="#define SODIUM_LIBRARY_MINIMAL 1"
AC_DEFINE([MINIMAL], [1], [Define for a minimal build, without deprecated functions and functions that high-level APIs depend on]) AC_DEFINE([MINIMAL], [1], [Define for a minimal build, without deprecated functions and functions that high-level APIs depend on])
], [ ], [
enable_minimal="no" enable_minimal="no"
@ -111,6 +112,7 @@ AC_ARG_ENABLE(minimal,
enable_minimal="no" enable_minimal="no"
]) ])
AM_CONDITIONAL([MINIMAL], [test x$enable_minimal = xyes]) AM_CONDITIONAL([MINIMAL], [test x$enable_minimal = xyes])
AC_SUBST(SODIUM_LIBRARY_MINIMAL_DEF)
AC_ARG_WITH(pthreads, AC_HELP_STRING([--with-pthreads], AC_ARG_WITH(pthreads, AC_HELP_STRING([--with-pthreads],
[use pthreads library, or --without-pthreads to disable threading support.]), [use pthreads library, or --without-pthreads to disable threading support.]),

View File

@ -2,6 +2,8 @@
#ifndef sodium_H #ifndef sodium_H
#define sodium_H #define sodium_H
#include "sodium/version.h"
#include "sodium/core.h" #include "sodium/core.h"
#include "sodium/crypto_aead_aes256gcm.h" #include "sodium/crypto_aead_aes256gcm.h"
#include "sodium/crypto_aead_chacha20poly1305.h" #include "sodium/crypto_aead_chacha20poly1305.h"
@ -11,7 +13,6 @@
#include "sodium/crypto_auth_hmacsha512.h" #include "sodium/crypto_auth_hmacsha512.h"
#include "sodium/crypto_auth_hmacsha512256.h" #include "sodium/crypto_auth_hmacsha512256.h"
#include "sodium/crypto_box.h" #include "sodium/crypto_box.h"
#include "sodium/crypto_box_curve25519xchacha20poly1305.h"
#include "sodium/crypto_box_curve25519xsalsa20poly1305.h" #include "sodium/crypto_box_curve25519xsalsa20poly1305.h"
#include "sodium/crypto_core_hsalsa20.h" #include "sodium/crypto_core_hsalsa20.h"
#include "sodium/crypto_core_hchacha20.h" #include "sodium/crypto_core_hchacha20.h"
@ -34,18 +35,13 @@
#include "sodium/crypto_scalarmult_curve25519.h" #include "sodium/crypto_scalarmult_curve25519.h"
#include "sodium/crypto_secretbox.h" #include "sodium/crypto_secretbox.h"
#include "sodium/crypto_secretbox_xsalsa20poly1305.h" #include "sodium/crypto_secretbox_xsalsa20poly1305.h"
#include "sodium/crypto_secretbox_xchacha20poly1305.h"
#include "sodium/crypto_shorthash.h" #include "sodium/crypto_shorthash.h"
#include "sodium/crypto_shorthash_siphash24.h" #include "sodium/crypto_shorthash_siphash24.h"
#include "sodium/crypto_sign.h" #include "sodium/crypto_sign.h"
#include "sodium/crypto_sign_ed25519.h" #include "sodium/crypto_sign_ed25519.h"
#include "sodium/crypto_stream.h" #include "sodium/crypto_stream.h"
#include "sodium/crypto_stream_aes128ctr.h"
#include "sodium/crypto_stream_chacha20.h" #include "sodium/crypto_stream_chacha20.h"
#include "sodium/crypto_stream_salsa20.h" #include "sodium/crypto_stream_salsa20.h"
#include "sodium/crypto_stream_salsa2012.h"
#include "sodium/crypto_stream_salsa208.h"
#include "sodium/crypto_stream_xchacha20.h"
#include "sodium/crypto_stream_xsalsa20.h" #include "sodium/crypto_stream_xsalsa20.h"
#include "sodium/crypto_verify_16.h" #include "sodium/crypto_verify_16.h"
#include "sodium/crypto_verify_32.h" #include "sodium/crypto_verify_32.h"
@ -58,6 +54,14 @@
#include "sodium/randombytes_sysrandom.h" #include "sodium/randombytes_sysrandom.h"
#include "sodium/runtime.h" #include "sodium/runtime.h"
#include "sodium/utils.h" #include "sodium/utils.h"
#include "sodium/version.h"
#ifndef SODIUM_LIBRARY_MINIMAL
# include "sodium/crypto_box_curve25519xchacha20poly1305.h"
# include "sodium/crypto_secretbox_xchacha20poly1305.h"
# include "sodium/crypto_stream_aes128ctr.h"
# include "sodium/crypto_stream_salsa2012.h"
# include "sodium/crypto_stream_salsa208.h"
# include "sodium/crypto_stream_xchacha20.h"
#endif
#endif #endif

View File

@ -25,6 +25,7 @@ SODIUM_EXPORT
int crypto_shorthash_siphash24(unsigned char *out, const unsigned char *in, int crypto_shorthash_siphash24(unsigned char *out, const unsigned char *in,
unsigned long long inlen, const unsigned char *k); unsigned long long inlen, const unsigned char *k);
#ifndef SODIUM_LIBRARY_MINIMAL
/* -- 128-bit output -- */ /* -- 128-bit output -- */
#define crypto_shorthash_siphashx24_BYTES 16U #define crypto_shorthash_siphashx24_BYTES 16U
@ -38,6 +39,7 @@ size_t crypto_shorthash_siphashx24_keybytes(void);
SODIUM_EXPORT SODIUM_EXPORT
int crypto_shorthash_siphashx24(unsigned char *out, const unsigned char *in, int crypto_shorthash_siphashx24(unsigned char *out, const unsigned char *in,
unsigned long long inlen, const unsigned char *k); unsigned long long inlen, const unsigned char *k);
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -8,6 +8,7 @@
#define SODIUM_LIBRARY_VERSION_MAJOR @SODIUM_LIBRARY_VERSION_MAJOR@ #define SODIUM_LIBRARY_VERSION_MAJOR @SODIUM_LIBRARY_VERSION_MAJOR@
#define SODIUM_LIBRARY_VERSION_MINOR @SODIUM_LIBRARY_VERSION_MINOR@ #define SODIUM_LIBRARY_VERSION_MINOR @SODIUM_LIBRARY_VERSION_MINOR@
@SODIUM_LIBRARY_MINIMAL_DEF@
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -22,6 +23,9 @@ int sodium_library_version_major(void);
SODIUM_EXPORT SODIUM_EXPORT
int sodium_library_version_minor(void); int sodium_library_version_minor(void);
SODIUM_EXPORT
int sodium_library_minimal(void);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -18,3 +18,13 @@ sodium_library_version_minor(void)
{ {
return SODIUM_LIBRARY_VERSION_MINOR; return SODIUM_LIBRARY_VERSION_MINOR;
} }
int
sodium_library_minimal(void)
{
#ifdef SODIUM_LIBRARY_MINIMAL
return 1;
#else
return 0;
#endif
}

View File

@ -8,6 +8,11 @@ main(void)
printf("%d\n", sodium_version_string() != NULL); printf("%d\n", sodium_version_string() != NULL);
printf("%d\n", sodium_library_version_major() > 0); printf("%d\n", sodium_library_version_major() > 0);
printf("%d\n", sodium_library_version_minor() >= 0); printf("%d\n", sodium_library_version_minor() >= 0);
#ifdef SODIUM_LIBRARY_MINIMAL
assert(sodium_library_minimal() == 1);
#else
assert(sodium_library_minimal() == 0);
#endif
return 0; return 0;
} }