Commit Graph

196 Commits

Author SHA1 Message Date
Frank Denis
ab2e86748e Replace the aes256gcm implementation with Romain Dolbeau's implementation
which is slightly faster than mine.
Reimplement features from the previous implementation: add batch mode and
use two passes in the decryption function in order to check the tag before
decrypting.
2015-10-10 16:21:08 +02:00
Frank Denis
571bfc99c8 Check for ssse3 presence 2015-10-07 23:26:13 +02:00
Frank Denis
e8e5d2fc18 Add crypto_aead_aes256gcm_aesni_*
Requires a CPU with aesni and pclmulqdq
This is a private branch for a reason. It is not going to be merged as-is.
2015-10-07 23:09:19 +02:00
Frank Denis
46f71fba9e Check for getpid(2) presence instead of checking for Visual Studio 2015-09-13 15:04:26 +02:00
Frank Denis
c1f749e68a Keep shell variables names consistent with their related C macros. 2015-09-04 15:37:31 +02:00
Matthijs van Duin
cfa9e95b6c improve test for unaligned access
check target attribute on ARM
2015-09-04 02:29:34 +02:00
Frank Denis
7fca230be8 Nits after pnacl merge 2015-08-02 13:53:22 +02:00
Frank Denis
f610f781f2 Merge remote-tracking branch 'arbinger/pnacl' into nacl
* arbinger/pnacl:
  removed comment
  Added .final and .nexe output files to CLEANFILES
  revert original hack
  Initial patch for Chrome NaCl implementation
  Added patch to obtain random bytes for Chrome NaCl via IRT -- allows build with NaCl SDK toolchain
2015-08-02 12:54:05 +02:00
Syrone Wong
4074470a31 Fix _FORTIFY_SOURCE redefined issue 2015-08-02 09:36:52 +08:00
James Robson
34a4931d9a Initial patch for Chrome NaCl implementation 2015-06-22 13:02:21 -05:00
Frank Denis
b5fff1fcf5 Version bump 2015-04-26 17:09:00 +02:00
Frank Denis
33357dc52e Running the JS tests requires the filesystem. 2015-01-18 00:46:48 +01:00
Frank Denis
98c96f4c99 No browser, no filesystem support required 2015-01-18 00:42:34 +01:00
Frank Denis
e7f410de10 Emscripten: don't use a memory init file any more.
It doesn't take that long to load the module, and it's going to make
users' life way easier.
2015-01-17 22:11:10 +01:00
Frank Denis
201821065d Reserve slots for function pointers 2015-01-17 18:33:25 +01:00
Frank Denis
2c15c81ba5 Revert 17932c782e
It broke compilation on OpenBSD.
2015-01-15 16:21:09 +01:00
Frank Denis
f20ecbed94 Skip sodium_utils{2,3} tests when the target is Javascript 2015-01-15 11:12:58 +01:00
Frank Denis
5b8c2de267 Version bump 2015-01-12 09:41:46 +01:00
Frank Denis
aaf5fbf2e5 + precomputed interface for crypto_box() 2015-01-06 17:52:42 +01:00
Jack Wink
f87ef76ee8 remove extra pie check 2014-12-28 13:19:07 -05:00
Jack Wink
1ce56adbef a second stab at detecting valid linker flags 2014-12-28 13:17:09 -05:00
Jack Wink
9c9d1edf74 check to see if '-Wl,-pie' is supported before using it 2014-12-28 12:59:53 -05:00
Jack Wink
6ebf4030f8 change '-pie' to '-Wl,-pie' to squash clang errors 2014-12-28 12:27:35 -05:00
Frank Denis
4c4d04bb2a Merge pull request #222 from stellar/master
Add libsodium-uninstalled.pc.in
2014-12-25 10:56:17 +01:00
Frank Denis
3a9c4f2c78 Merge branch 'master' of github.com:jedisct1/libsodium
* 'master' of github.com:jedisct1/libsodium:
  Warn that libtool might fail if the build directory contains whitespaces
2014-12-23 20:26:29 +01:00
Frank Denis
c6e93b9f79 Discourage use of --enable-blocking-random 2014-12-23 20:24:23 +01:00
Graydon Hoare
9ae403b489 Add libsodium-uninstalled.pc.in 2014-12-22 16:14:22 -08:00
Frank Denis
0b58f87fef Warn that libtool might fail if the build directory contains whitespaces 2014-12-21 09:51:32 +01:00
Frank Denis
9d71e18a22 Always generate libsodium.pc 2014-11-29 13:53:20 -08:00
Frank Denis
11ccb20512 If -fno-strict-overflow is available, don't add -fwrapv 2014-11-25 12:19:08 -08:00
Frank Denis
61620d7e42 Make 'make check' actually run the tests on Emscripten. 2014-11-25 09:51:39 -08:00
Frank Denis
69e3674c29 Include the test pre.js script only for tests. 2014-11-24 17:19:55 -08:00
Frank Denis
b421610110 AC_FUNC_MMAP assumes that mmap(2) is not available when cross-compiling
except on GNU systems. Just check for function presence instead.
2014-11-24 10:34:42 -08:00
Frank Denis
da2c9952db Check if mmap(2) works, not just the presence of MAP_ANON
In particular, mmap(2) doesn't return an aligner pointer on Emscripten.
2014-11-24 10:22:50 -08:00
Frank Denis
5aeebd880e Change EXEEXT to .js for Emscripten 2014-11-22 14:31:43 -08:00
Frank Denis
d0eab9323f Don't assume that madvise() is available even if related macros are defined. 2014-11-22 13:32:54 -08:00
Frank Denis
133118ca4d Skip mlock/mprotect/explicit_bzero when using Emscripten 2014-11-22 12:32:11 -08:00
Frank Denis
68b3191c90 Merge branch 'master' of github.com:jedisct1/libsodium
* 'master' of github.com:jedisct1/libsodium:
  Prevent first-run ./autogen.sh error due to ltmain.sh absence.
2014-11-02 19:24:29 -08:00
Frank Denis
25e467bdea Check that -D_FORTIFY_SOURCE=2 doesn't trigger a compiler bug 2014-11-02 19:24:08 -08:00
Phillip Mienk
2f5a4bd019 Prevent first-run ./autogen.sh error due to ltmain.sh absence. 2014-11-02 16:49:17 -08:00
Frank Denis
84972cbf9c Version bump 2014-10-08 22:01:12 -07:00
Frank Denis
2c61530133 1.0.0 2014-09-24 00:18:44 -07:00
Frank Denis
05f46af70e Version bump 2014-09-18 22:47:11 -07:00
Frank Denis
82c806ec07 Capitalize Android 2014-09-14 13:56:02 -07:00
Frank Denis
41ed891d56 Use -fstack-protector for all.
Might be replaced by -fstack-protector-strong later on.
2014-09-14 13:25:29 -07:00
Frank Denis
61449686ee Version bump 2014-08-15 16:52:01 -07:00
Frank Denis
473e1718cc Add sodium_{malloc,allocarray,free}() and sodium_mprotect_*()
ptr = sodium_malloc(size) returns a pointer from which exactly "size" bytes
can be accessed.

ptr = sodium_allocarray(count, size) allocates enough storage space for
"count" pointers or scalars of unit size "size".

In both cases, the region is immediately followed by a guard page.
As a result, any attempt to access a memory location after ptr[size - 1] will
immediately trigger a segmentation fault.

The allocated region is mlock()ed and filled with 0xd0 bytes.

A read-only page with the size, a guard page, as well as a canary are
placed before the returned pointer.

The canary is checked by sodium_free(); as a result, altering data right
before ptr is likely to cause sodium_free() to kill the process.

sodium_free() munlock()s the region and fills it with zeros before
actually calling free().

sodium_mprotect_noaccess(), sodium_mprotect_readonly() and
sodium_mprotect_readwrite() can be used to change the protection on the set
of allocated pages.

Reverting the protection to read+write is not required before calling
sodium_free().
2014-08-14 21:41:05 -07:00
Frank Denis
55bb50b855 Bump major 2014-08-06 10:09:21 -07:00
Frank Denis
ed76b41369 Rephrase 2014-08-04 16:29:13 -07:00
Frank Denis
2b0c8e40aa Keep IA-32 asm on MingW/Cygwin, check for Windows during the x86-64 test. 2014-08-04 16:24:11 -07:00