diff -Nru libsodium-1.0.0+20141005.1/builds/msvc/version.h libsodium-1.0.1/builds/msvc/version.h --- libsodium-1.0.0+20141005.1/builds/msvc/version.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/builds/msvc/version.h 2014-10-09 05:01:12.000000000 +0000 @@ -4,10 +4,10 @@ #include "export.h" -#define SODIUM_VERSION_STRING "1.0.0" +#define SODIUM_VERSION_STRING "1.0.1" #define SODIUM_LIBRARY_VERSION_MAJOR 7 -#define SODIUM_LIBRARY_VERSION_MINOR 2 +#define SODIUM_LIBRARY_VERSION_MINOR 3 #ifdef __cplusplus extern "C" { diff -Nru libsodium-1.0.0+20141005.1/configure.ac libsodium-1.0.1/configure.ac --- libsodium-1.0.0+20141005.1/configure.ac 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/configure.ac 2014-10-09 05:01:12.000000000 +0000 @@ -1,5 +1,5 @@ AC_PREREQ([2.65]) -AC_INIT([libsodium],[1.0.0], +AC_INIT([libsodium],[1.0.1], [https://github.com/jedisct1/libsodium/issues], [libsodium], [https://github.com/jedisct1/libsodium]) @@ -16,9 +16,9 @@ AC_SUBST(ISODATE) SODIUM_LIBRARY_VERSION_MAJOR=7 -SODIUM_LIBRARY_VERSION_MINOR=2 +SODIUM_LIBRARY_VERSION_MINOR=3 DLL_VERSION=6 -SODIUM_LIBRARY_VERSION=13:2:0 +SODIUM_LIBRARY_VERSION=13:3:0 # | | | # +------+ | +---+ # | | | diff -Nru libsodium-1.0.0+20141005.1/debian/changelog libsodium-1.0.1/debian/changelog --- libsodium-1.0.0+20141005.1/debian/changelog 2014-10-05 22:42:25.000000000 +0000 +++ libsodium-1.0.1/debian/changelog 2014-10-11 22:20:26.000000000 +0000 @@ -1,16 +1,38 @@ -libsodium (1.0.0+20141005.1-1ubuntu1) trusty; urgency=medium +libsodium (1.0.1-1ubuntu1) trusty; urgency=medium * Upload to PPA - -- Kill Your TV Sun, 05 Oct 2014 22:42:10 +0000 + -- Kill Your TV Sat, 11 Oct 2014 22:20:12 +0000 + +libsodium (1.0.1-1) unstable; urgency=medium + + + [ Frank Denis ] + * Remove S Sat, 11 Oct 2014 22:05:30 +0000 libsodium (1.0.0+20141005.1-1) unstable; urgency=medium [ Frank Denis ] * and -> and/or * SODIUM_VERSION_STRING should be the package version even on Visual Studio - * ed25519_open(): check that S < l Not strictly required, but I don't see any downsides either. - * Support overlapping input and output regions in crypto_secretbox_detached() crypto_stream_salsa20() doesn't support overlapping input and output regions, except when they are aliases. + * ed25519_open(): check that S < l Not strictly required, but I don't see + any downsides either. + * Support overlapping input and output regions in + crypto_secretbox_detached() crypto_stream_salsa20() doesn't support + overlapping input and output regions, except when they are aliases. * Add a test for ed25519 malleability and restore traditional behavior. * Avoid a conditional jump * Test box_easy with overlapping in/out. diff -Nru libsodium-1.0.0+20141005.1/debian/control libsodium-1.0.1/debian/control --- libsodium-1.0.0+20141005.1/debian/control 2014-10-05 22:42:25.000000000 +0000 +++ libsodium-1.0.1/debian/control 2014-10-11 22:20:26.000000000 +0000 @@ -2,7 +2,7 @@ Maintainer: Kill Your TV Section: misc Priority: optional -Standards-Version: 3.9.5 +Standards-Version: 3.9.6 Homepage: https://libsodium.org Build-Depends: debhelper (>= 9), dh-autoreconf diff -Nru libsodium-1.0.0+20141005.1/msvc-scripts/process.bat libsodium-1.0.1/msvc-scripts/process.bat --- libsodium-1.0.0+20141005.1/msvc-scripts/process.bat 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/msvc-scripts/process.bat 2014-10-09 05:01:12.000000000 +0000 @@ -1,4 +1,4 @@ -cscript msvc-scripts/rep.vbs //Nologo s/@VERSION@/1.0.0/ < src\libsodium\include\sodium\version.h.in > tmp +cscript msvc-scripts/rep.vbs //Nologo s/@VERSION@/1.0.1/ < src\libsodium\include\sodium\version.h.in > tmp cscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_VERSION_MAJOR@/7/ < tmp > tmp2 -cscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_VERSION_MINOR@/2/ < tmp2 > src\libsodium\include\sodium\version.h +cscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_VERSION_MINOR@/3/ < tmp2 > src\libsodium\include\sodium\version.h del tmp tmp2 diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/crypto_generichash/blake2/ref/blake2.h libsodium-1.0.1/src/libsodium/crypto_generichash/blake2/ref/blake2.h --- libsodium-1.0.0+20141005.1/src/libsodium/crypto_generichash/blake2/ref/blake2.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/crypto_generichash/blake2/ref/blake2.h 2014-10-09 05:01:12.000000000 +0000 @@ -11,8 +11,8 @@ this software. If not, see . */ -#ifndef __BLAKE2_H__ -#define __BLAKE2_H__ +#ifndef blake2_H +#define blake2_H #include #include @@ -58,7 +58,7 @@ }; #pragma pack(push, 1) - typedef struct __blake2s_param + typedef struct blake2s_param_ { uint8_t digest_length; // 1 uint8_t key_length; // 2 @@ -73,7 +73,7 @@ uint8_t personal[BLAKE2S_PERSONALBYTES]; // 32 } blake2s_param; - ALIGN( 64 ) typedef struct __blake2s_state + ALIGN( 64 ) typedef struct blake2s_state_ { uint32_t h[8]; uint32_t t[2]; @@ -83,7 +83,7 @@ uint8_t last_node; } blake2s_state ; - typedef struct __blake2b_param + typedef struct blake2b_param_ { uint8_t digest_length; // 1 uint8_t key_length; // 2 @@ -101,7 +101,7 @@ #ifndef DEFINE_BLAKE2B_STATE typedef crypto_generichash_blake2b_state blake2b_state; #else - ALIGN( 64 ) typedef struct __blake2b_state + ALIGN( 64 ) typedef struct blake2b_state_ { uint64_t h[8]; uint64_t t[2]; @@ -112,7 +112,7 @@ } blake2b_state; #endif - typedef struct __blake2sp_state + typedef struct blake2sp_state_ { blake2s_state S[8][1]; blake2s_state R[1]; @@ -120,7 +120,7 @@ size_t buflen; } blake2sp_state; - typedef struct __blake2bp_state + typedef struct blake2bp_state_ { blake2b_state S[4][1]; blake2b_state R[1]; diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h libsodium-1.0.1/src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h --- libsodium-1.0.0+20141005.1/src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h 2014-10-09 05:01:12.000000000 +0000 @@ -11,8 +11,8 @@ this software. If not, see . */ -#ifndef __BLAKE2_IMPL_H__ -#define __BLAKE2_IMPL_H__ +#ifndef blake2_impl_H +#define blake2_impl_H #include #include diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/crypto_onetimeauth/poly1305/donna/auth_poly1305_donna.c libsodium-1.0.1/src/libsodium/crypto_onetimeauth/poly1305/donna/auth_poly1305_donna.c --- libsodium-1.0.0+20141005.1/src/libsodium/crypto_onetimeauth/poly1305/donna/auth_poly1305_donna.c 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/crypto_onetimeauth/poly1305/donna/auth_poly1305_donna.c 2014-10-09 05:01:12.000000000 +0000 @@ -96,10 +96,10 @@ struct crypto_onetimeauth_poly1305_implementation crypto_onetimeauth_poly1305_donna_implementation = { - _SODIUM_C99(.implementation_name =) crypto_onetimeauth_poly1305_donna_implementation_name, - _SODIUM_C99(.onetimeauth =) crypto_onetimeauth_poly1305_donna, - _SODIUM_C99(.onetimeauth_verify =) crypto_onetimeauth_poly1305_donna_verify, - _SODIUM_C99(.onetimeauth_init =) crypto_onetimeauth_poly1305_donna_init, - _SODIUM_C99(.onetimeauth_update =) crypto_onetimeauth_poly1305_donna_update, - _SODIUM_C99(.onetimeauth_final =) crypto_onetimeauth_poly1305_donna_final + SODIUM_C99(.implementation_name =) crypto_onetimeauth_poly1305_donna_implementation_name, + SODIUM_C99(.onetimeauth =) crypto_onetimeauth_poly1305_donna, + SODIUM_C99(.onetimeauth_verify =) crypto_onetimeauth_poly1305_donna_verify, + SODIUM_C99(.onetimeauth_init =) crypto_onetimeauth_poly1305_donna_init, + SODIUM_C99(.onetimeauth_update =) crypto_onetimeauth_poly1305_donna_update, + SODIUM_C99(.onetimeauth_final =) crypto_onetimeauth_poly1305_donna_final }; diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h libsodium-1.0.1/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h --- libsodium-1.0.0+20141005.1/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h 2014-10-09 05:01:12.000000000 +0000 @@ -1,5 +1,5 @@ -#ifndef __POLY1305_DONNA_H__ -#define __POLY1305_DONNA_H__ +#ifndef poly1305_donna_H +#define poly1305_donna_H #include diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h libsodium-1.0.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h --- libsodium-1.0.0+20141005.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h 2014-10-09 05:01:12.000000000 +0000 @@ -27,8 +27,8 @@ * This file was originally written by Colin Percival as part of the Tarsnap * online backup system. */ -#ifndef _CRYPTO_SCRYPT_H_ -#define _CRYPTO_SCRYPT_H_ +#ifndef crypto_scrypt_H +#define crypto_scrypt_H #include diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h libsodium-1.0.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h --- libsodium-1.0.0+20141005.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h 2014-10-09 05:01:12.000000000 +0000 @@ -25,8 +25,8 @@ * */ -#ifndef _SHA256_H_ -#define _SHA256_H_ +#ifndef pbkdf2_sha256_H +#define pbkdf2_sha256_H #include diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sysendian.h libsodium-1.0.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sysendian.h --- libsodium-1.0.0+20141005.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sysendian.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sysendian.h 2014-10-09 05:01:12.000000000 +0000 @@ -1,5 +1,5 @@ -#ifndef _SYSENDIAN_H_ -#define _SYSENDIAN_H_ +#ifndef sysendian_H +#define sysendian_H #include diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/crypto_sign/ed25519/ref10/open.c libsodium-1.0.1/src/libsodium/crypto_sign/ed25519/ref10/open.c --- libsodium-1.0.0+20141005.1/src/libsodium/crypto_sign/ed25519/ref10/open.c 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/crypto_sign/ed25519/ref10/open.c 2014-10-09 05:01:12.000000000 +0000 @@ -9,29 +9,6 @@ #include "sc.h" #include "utils.h" -#ifdef ED25519_PREVENT_MALLEABILITY -static int -crypto_sign_check_S_lt_l(const unsigned char *S) -{ - static const unsigned char l[32] = - { 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, - 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 }; - unsigned char c = 0; - unsigned char n = 1; - unsigned int i = 32; - - do { - i--; - c |= ((S[i] - l[i]) >> 8) & n; - n &= ((S[i] ^ l[i]) - 1) >> 8; - } while (i != 0); - - return ((int) c) - 1; -} -#endif - int crypto_sign_verify_detached(const unsigned char *sig, const unsigned char *m, unsigned long long mlen, const unsigned char *pk) @@ -44,15 +21,9 @@ ge_p3 A; ge_p2 R; -#ifdef ED25519_PREVENT_MALLEABILITY - if (crypto_sign_check_S_lt_l(sig + 32) != 0) { - return -1; - } -#else if (sig[63] & 224) { return -1; } -#endif if (ge_frombytes_negate_vartime(&A, pk) != 0) { return -1; } diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/core.h libsodium-1.0.1/src/libsodium/include/sodium/core.h --- libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/core.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/include/sodium/core.h 2014-10-09 05:01:12.000000000 +0000 @@ -1,6 +1,6 @@ -#ifndef __SODIUM_CORE_H__ -#define __SODIUM_CORE_H__ +#ifndef sodium_core_H +#define sodium_core_H #include "export.h" diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/export.h libsodium-1.0.1/src/libsodium/include/sodium/export.h --- libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/export.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/include/sodium/export.h 2014-10-09 05:01:12.000000000 +0000 @@ -1,6 +1,6 @@ -#ifndef __SODIUM_EXPORT_H__ -#define __SODIUM_EXPORT_H__ +#ifndef sodium_export_H +#define sodium_export_H #ifndef __GNUC__ # ifdef __attribute__ diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/runtime.h libsodium-1.0.1/src/libsodium/include/sodium/runtime.h --- libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/runtime.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/include/sodium/runtime.h 2014-10-09 05:01:12.000000000 +0000 @@ -1,6 +1,6 @@ -#ifndef __SODIUM_RUNTIME_H__ -#define __SODIUM_RUNTIME_H__ 1 +#ifndef sodium_runtime_H +#define sodium_runtime_H #include "export.h" diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/utils.h libsodium-1.0.1/src/libsodium/include/sodium/utils.h --- libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/utils.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/include/sodium/utils.h 2014-10-09 05:01:12.000000000 +0000 @@ -1,6 +1,6 @@ -#ifndef __SODIUM_UTILS_H__ -#define __SODIUM_UTILS_H__ +#ifndef sodium_utils_H +#define sodium_utils_H #include @@ -11,9 +11,9 @@ #endif #if defined(__cplusplus) || !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L -# define _SODIUM_C99(X) +# define SODIUM_C99(X) #else -# define _SODIUM_C99(X) X +# define SODIUM_C99(X) X #endif SODIUM_EXPORT diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/version.h.in libsodium-1.0.1/src/libsodium/include/sodium/version.h.in --- libsodium-1.0.0+20141005.1/src/libsodium/include/sodium/version.h.in 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/include/sodium/version.h.in 2014-10-09 05:01:12.000000000 +0000 @@ -1,6 +1,6 @@ -#ifndef __SODIUM_VERSION_H__ -#define __SODIUM_VERSION_H__ +#ifndef sodium_version_H +#define sodium_version_H #include "export.h" diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/include/sodium.h libsodium-1.0.1/src/libsodium/include/sodium.h --- libsodium-1.0.0+20141005.1/src/libsodium/include/sodium.h 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/include/sodium.h 2014-10-09 05:01:12.000000000 +0000 @@ -1,6 +1,6 @@ -#ifndef __SODIUM_H__ -#define __SODIUM_H__ +#ifndef sodium_H +#define sodium_H #include #include diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c libsodium-1.0.1/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c --- libsodium-1.0.0+20141005.1/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c 2014-10-09 05:01:12.000000000 +0000 @@ -52,9 +52,9 @@ } Salsa20Random; static Salsa20Random stream = { - _SODIUM_C99(.random_data_source_fd =) -1, - _SODIUM_C99(.rnd32_outleft =) (size_t) 0U, - _SODIUM_C99(.initialized =) 0 + SODIUM_C99(.random_data_source_fd =) -1, + SODIUM_C99(.rnd32_outleft =) (size_t) 0U, + SODIUM_C99(.initialized =) 0 }; static uint64_t @@ -335,10 +335,10 @@ } struct randombytes_implementation randombytes_salsa20_implementation = { - _SODIUM_C99(.implementation_name =) randombytes_salsa20_implementation_name, - _SODIUM_C99(.random =) randombytes_salsa20_random, - _SODIUM_C99(.stir =) randombytes_salsa20_random_stir, - _SODIUM_C99(.uniform =) randombytes_salsa20_random_uniform, - _SODIUM_C99(.buf =) randombytes_salsa20_random_buf, - _SODIUM_C99(.close =) randombytes_salsa20_random_close + SODIUM_C99(.implementation_name =) randombytes_salsa20_implementation_name, + SODIUM_C99(.random =) randombytes_salsa20_random, + SODIUM_C99(.stir =) randombytes_salsa20_random_stir, + SODIUM_C99(.uniform =) randombytes_salsa20_random_uniform, + SODIUM_C99(.buf =) randombytes_salsa20_random_buf, + SODIUM_C99(.close =) randombytes_salsa20_random_close }; diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c libsodium-1.0.1/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c --- libsodium-1.0.0+20141005.1/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c 2014-10-09 05:01:12.000000000 +0000 @@ -69,8 +69,8 @@ } SysRandom; static SysRandom stream = { - _SODIUM_C99(.random_data_source_fd =) -1, - _SODIUM_C99(.initialized =) 0 + SODIUM_C99(.random_data_source_fd =) -1, + SODIUM_C99(.initialized =) 0 }; #ifndef _WIN32 @@ -250,10 +250,10 @@ } struct randombytes_implementation randombytes_sysrandom_implementation = { - _SODIUM_C99(.implementation_name =) randombytes_sysrandom_implementation_name, - _SODIUM_C99(.random =) randombytes_sysrandom, - _SODIUM_C99(.stir =) randombytes_sysrandom_stir, - _SODIUM_C99(.uniform =) randombytes_sysrandom_uniform, - _SODIUM_C99(.buf =) randombytes_sysrandom_buf, - _SODIUM_C99(.close =) randombytes_sysrandom_close + SODIUM_C99(.implementation_name =) randombytes_sysrandom_implementation_name, + SODIUM_C99(.random =) randombytes_sysrandom, + SODIUM_C99(.stir =) randombytes_sysrandom_stir, + SODIUM_C99(.uniform =) randombytes_sysrandom_uniform, + SODIUM_C99(.buf =) randombytes_sysrandom_buf, + SODIUM_C99(.close =) randombytes_sysrandom_close }; diff -Nru libsodium-1.0.0+20141005.1/src/libsodium/sodium/utils.c libsodium-1.0.1/src/libsodium/sodium/utils.c --- libsodium-1.0.0+20141005.1/src/libsodium/sodium/utils.c 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/src/libsodium/sodium/utils.c 2014-10-09 05:01:12.000000000 +0000 @@ -47,7 +47,7 @@ #ifdef HAVE_WEAK_SYMBOLS __attribute__((weak)) void -__sodium_dummy_symbol_to_prevent_lto(void * const pnt, const size_t len) +_sodium_dummy_symbol_to_prevent_lto(void * const pnt, const size_t len) { (void) pnt; (void) len; @@ -67,7 +67,7 @@ explicit_bzero(pnt, len); #elif HAVE_WEAK_SYMBOLS memset(pnt, 0, len); - __sodium_dummy_symbol_to_prevent_lto(pnt, len); + _sodium_dummy_symbol_to_prevent_lto(pnt, len); #else volatile unsigned char *pnt_ = (volatile unsigned char *) pnt; size_t i = (size_t) 0U; @@ -96,22 +96,25 @@ sodium_bin2hex(char * const hex, const size_t hex_maxlen, const unsigned char * const bin, const size_t bin_len) { - static const char hexdigits[16] = { - '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' - }; - size_t i = (size_t) 0U; - size_t j = (size_t) 0U; + size_t i = (size_t) 0U; + unsigned int x; + int b; + int c; if (bin_len >= SIZE_MAX / 2 || hex_maxlen < bin_len * 2U) { abort(); /* LCOV_EXCL_LINE */ } while (i < bin_len) { - hex[j++] = hexdigits[bin[i] >> 4]; - hex[j++] = hexdigits[bin[i] & 0xf]; + c = bin[i] & 0xf; + b = bin[i] >> 4; + x = (unsigned char) (87 + c + (((c - 10) >> 31) & -39)) << 8 | + (unsigned char) (87 + b + (((b - 10) >> 31) & -39)); + hex[i * 2U] = (char) x; + x >>= 8; + hex[i * 2U + 1U] = (char) x; i++; } - hex[j] = 0; + hex[i * 2U] = 0; return hex; } diff -Nru libsodium-1.0.0+20141005.1/test/default/sign.c libsodium-1.0.1/test/default/sign.c --- libsodium-1.0.0+20141005.1/test/default/sign.c 2014-10-05 08:28:00.000000000 +0000 +++ libsodium-1.0.1/test/default/sign.c 2014-10-09 05:01:12.000000000 +0000 @@ -1096,17 +1096,10 @@ continue; } add_l(sm + 32); -#ifdef ED25519_PREVENT_MALLEABILITY - if (crypto_sign_open(m, &mlen, sm, smlen, test_data[i].pk) != -1) { - printf("crypto_sign_open(): signature [%u] is malleable\n", i); - continue; - } -#else if (crypto_sign_open(m, &mlen, sm, smlen, test_data[i].pk) != 0) { printf("crypto_sign_open(): signature [%u] is not malleable\n", i); continue; } -#endif if (memcmp(test_data[i].m, m, (size_t)mlen) != 0) { printf("message verification failure: [%u]\n", i); continue;