diff --git a/AUTHORS b/AUTHORS
index a3393325..8d086428 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -93,6 +93,8 @@ crypto_secretbox/xsalsa20poly1305 Daniel J. Bernstein
crypto_secretbox/xchacha20poly1305 Frank Denis
+crypto_secretstream/xchacha20poly1305 Frank Denis
+
crypto_shorthash/siphash24 Jean-Philippe Aumasson
Daniel J. Bernstein
@@ -102,8 +104,6 @@ crypto_sign/ed25519 Peter Schwabe
Tanja Lange
Bo-Yin Yang
-crypto_stream/aes128ctr Peter Schwabe
-
crypto_stream/chacha20/ref Daniel J. Bernstein
crypto_stream/chacha20/dolbeau Romain Dolbeau
diff --git a/builds/msvc/vs2010/libsodium/libsodium.vcxproj b/builds/msvc/vs2010/libsodium/libsodium.vcxproj
index b8a3a6f4..a125937c 100644
--- a/builds/msvc/vs2010/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2010/libsodium/libsodium.vcxproj
@@ -77,243 +77,232 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
+
-
+
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
index f3453f82..cecf07ba 100644
--- a/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
@@ -24,98 +24,128 @@
-
- crypto_aead\aes256gcm\aesni
+
+ crypto_generichash
-
- crypto_aead\chacha20poly1305\sodium
+
+ crypto_generichash\blake2b
-
- crypto_aead\xchacha20poly1305\sodium
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_kx
+
+
+ crypto_sign
+
+
+ crypto_sign\ed25519
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox\xsalsa20poly1305
+
+
+ crypto_secretbox\xchacha20poly1305
+
+
+ crypto_pwhash
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256\nosse
+
+
+ crypto_pwhash\scryptsalsa208sha256\sse
+
+
+ crypto_verify\sodium
crypto_auth
-
- crypto_auth\hmacsha256
-
crypto_auth\hmacsha512
crypto_auth\hmacsha512256
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xsalsa20poly1305
-
-
- crypto_core\curve25519\ref10
-
-
- crypto_core\hchacha20
-
-
- crypto_core\hsalsa20
-
-
- crypto_core\hsalsa20\ref2
-
-
- crypto_core\salsa\ref
-
-
- crypto_generichash
-
-
- crypto_generichash\blake2b
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_hash
-
-
- crypto_hash\sha256
-
-
- crypto_hash\sha256\cp
-
-
- crypto_hash\sha512
-
-
- crypto_hash\sha512\cp
+
+ crypto_auth\hmacsha256
crypto_kdf
@@ -123,8 +153,41 @@
crypto_kdf\blake2b
-
- crypto_kx
+
+ crypto_shorthash
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_scalarmult
+
+
+ crypto_scalarmult\curve25519
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\donna_c64
+
+
+ crypto_scalarmult\curve25519\ref10
crypto_onetimeauth
@@ -138,177 +201,84 @@
crypto_onetimeauth\poly1305\sse2
-
- crypto_pwhash
+
+ randombytes
-
- crypto_pwhash\argon2
+
+ randombytes\sysrandom
-
- crypto_pwhash\argon2
+
+ randombytes\salsa20
-
- crypto_pwhash\argon2
+
+ randombytes\nativeclient
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xsalsa20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
-
-
- crypto_pwhash\scryptsalsa208sha256\nosse
-
-
- crypto_pwhash\scryptsalsa208sha256\sse
-
-
- crypto_scalarmult
-
-
- crypto_scalarmult\curve25519
-
-
- crypto_scalarmult\curve25519\donna_c64
-
-
- crypto_scalarmult\curve25519\ref10
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_secretbox
-
-
- crypto_secretbox
-
-
- crypto_secretbox\xchacha20poly1305
-
-
- crypto_secretbox\xsalsa20poly1305
-
-
- crypto_secretstream\xchacha20poly1305
-
-
- crypto_shorthash
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign
-
-
- crypto_sign\ed25519
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
+
+ sodium
crypto_stream
-
- crypto_stream\aes128ctr
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_stream\xchacha20
crypto_stream\chacha20
+
+ crypto_stream\chacha20\ref
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
+
+ crypto_stream\salsa20\xmm6
+
crypto_stream\salsa2012
@@ -321,171 +291,363 @@
crypto_stream\salsa208\ref
-
- crypto_stream\xchacha20
-
crypto_stream\xsalsa20
-
- crypto_verify\sodium
+
+ crypto_hash
-
- randombytes
+
+ crypto_hash\sha512
-
- randombytes\nativeclient
+
+ crypto_hash\sha512\cp
-
- randombytes\salsa20
+
+ crypto_hash\sha256
-
- randombytes\sysrandom
+
+ crypto_hash\sha256\cp
-
- sodium
+
+ crypto_aead\xchacha20poly1305\sodium
-
- sodium
+
+ crypto_aead\aes256gcm\aesni
-
- sodium
+
+ crypto_aead\chacha20poly1305\sodium
-
- sodium
+
+ crypto_secretstream\xchacha20poly1305
-
- sodium
+
+ crypto_core\salsa\ref
+
+
+ crypto_core\hchacha20
+
+
+ crypto_core\hsalsa20
+
+
+ crypto_core\hsalsa20\ref2
+
+
+ crypto_core\curve25519\ref10
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
-
- crypto_generichash\blake2b\ref
+
+ crypto_sign\ed25519\ref10
-
- crypto_generichash\blake2b\ref
+
+ include
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_onetimeauth\poly1305
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\sse2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
crypto_pwhash\argon2
crypto_pwhash\argon2
-
- crypto_pwhash\argon2
-
-
+
crypto_pwhash\argon2
crypto_pwhash\argon2
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
crypto_pwhash\scryptsalsa208sha256
crypto_pwhash\scryptsalsa208sha256
+
+ crypto_shorthash\siphash24\ref
+
crypto_scalarmult\curve25519
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
crypto_scalarmult\curve25519\donna_c64
crypto_scalarmult\curve25519\ref10
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_onetimeauth\poly1305\sse2
crypto_stream\chacha20
-
+
+ crypto_stream\chacha20\ref
+
+
crypto_stream\chacha20\dolbeau
@@ -497,28 +659,19 @@
crypto_stream\chacha20\dolbeau
-
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
-
- crypto_stream\salsa20\xmm6int
-
-
+
crypto_stream\salsa20\xmm6int
@@ -527,209 +680,23 @@
crypto_stream\salsa20\xmm6int
-
+
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
-
- include
+
+ crypto_stream\salsa20\xmm6int
-
- include\sodium
+
+ crypto_stream\salsa20\xmm6
-
- include\sodium
+
+ crypto_core\curve25519\ref10
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
+
+ crypto_core\curve25519\ref10
@@ -910,12 +877,6 @@
{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}
-
- {2eb5e3c2-7e5d-386b-9464-05d69140360c}
-
-
- {775480be-a567-323a-96f8-598899bf97f9}
-
{806b6ff3-578b-308a-a359-0f5ed8472ecc}
diff --git a/builds/msvc/vs2012/libsodium/libsodium.vcxproj b/builds/msvc/vs2012/libsodium/libsodium.vcxproj
index 6c6d8f15..69a9f76e 100644
--- a/builds/msvc/vs2012/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2012/libsodium/libsodium.vcxproj
@@ -77,243 +77,232 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
+
-
+
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
index f3453f82..cecf07ba 100644
--- a/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
@@ -24,98 +24,128 @@
-
- crypto_aead\aes256gcm\aesni
+
+ crypto_generichash
-
- crypto_aead\chacha20poly1305\sodium
+
+ crypto_generichash\blake2b
-
- crypto_aead\xchacha20poly1305\sodium
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_kx
+
+
+ crypto_sign
+
+
+ crypto_sign\ed25519
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox\xsalsa20poly1305
+
+
+ crypto_secretbox\xchacha20poly1305
+
+
+ crypto_pwhash
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256\nosse
+
+
+ crypto_pwhash\scryptsalsa208sha256\sse
+
+
+ crypto_verify\sodium
crypto_auth
-
- crypto_auth\hmacsha256
-
crypto_auth\hmacsha512
crypto_auth\hmacsha512256
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xsalsa20poly1305
-
-
- crypto_core\curve25519\ref10
-
-
- crypto_core\hchacha20
-
-
- crypto_core\hsalsa20
-
-
- crypto_core\hsalsa20\ref2
-
-
- crypto_core\salsa\ref
-
-
- crypto_generichash
-
-
- crypto_generichash\blake2b
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_hash
-
-
- crypto_hash\sha256
-
-
- crypto_hash\sha256\cp
-
-
- crypto_hash\sha512
-
-
- crypto_hash\sha512\cp
+
+ crypto_auth\hmacsha256
crypto_kdf
@@ -123,8 +153,41 @@
crypto_kdf\blake2b
-
- crypto_kx
+
+ crypto_shorthash
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_scalarmult
+
+
+ crypto_scalarmult\curve25519
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\donna_c64
+
+
+ crypto_scalarmult\curve25519\ref10
crypto_onetimeauth
@@ -138,177 +201,84 @@
crypto_onetimeauth\poly1305\sse2
-
- crypto_pwhash
+
+ randombytes
-
- crypto_pwhash\argon2
+
+ randombytes\sysrandom
-
- crypto_pwhash\argon2
+
+ randombytes\salsa20
-
- crypto_pwhash\argon2
+
+ randombytes\nativeclient
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xsalsa20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
-
-
- crypto_pwhash\scryptsalsa208sha256\nosse
-
-
- crypto_pwhash\scryptsalsa208sha256\sse
-
-
- crypto_scalarmult
-
-
- crypto_scalarmult\curve25519
-
-
- crypto_scalarmult\curve25519\donna_c64
-
-
- crypto_scalarmult\curve25519\ref10
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_secretbox
-
-
- crypto_secretbox
-
-
- crypto_secretbox\xchacha20poly1305
-
-
- crypto_secretbox\xsalsa20poly1305
-
-
- crypto_secretstream\xchacha20poly1305
-
-
- crypto_shorthash
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign
-
-
- crypto_sign\ed25519
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
+
+ sodium
crypto_stream
-
- crypto_stream\aes128ctr
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_stream\xchacha20
crypto_stream\chacha20
+
+ crypto_stream\chacha20\ref
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
+
+ crypto_stream\salsa20\xmm6
+
crypto_stream\salsa2012
@@ -321,171 +291,363 @@
crypto_stream\salsa208\ref
-
- crypto_stream\xchacha20
-
crypto_stream\xsalsa20
-
- crypto_verify\sodium
+
+ crypto_hash
-
- randombytes
+
+ crypto_hash\sha512
-
- randombytes\nativeclient
+
+ crypto_hash\sha512\cp
-
- randombytes\salsa20
+
+ crypto_hash\sha256
-
- randombytes\sysrandom
+
+ crypto_hash\sha256\cp
-
- sodium
+
+ crypto_aead\xchacha20poly1305\sodium
-
- sodium
+
+ crypto_aead\aes256gcm\aesni
-
- sodium
+
+ crypto_aead\chacha20poly1305\sodium
-
- sodium
+
+ crypto_secretstream\xchacha20poly1305
-
- sodium
+
+ crypto_core\salsa\ref
+
+
+ crypto_core\hchacha20
+
+
+ crypto_core\hsalsa20
+
+
+ crypto_core\hsalsa20\ref2
+
+
+ crypto_core\curve25519\ref10
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
-
- crypto_generichash\blake2b\ref
+
+ crypto_sign\ed25519\ref10
-
- crypto_generichash\blake2b\ref
+
+ include
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_onetimeauth\poly1305
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\sse2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
crypto_pwhash\argon2
crypto_pwhash\argon2
-
- crypto_pwhash\argon2
-
-
+
crypto_pwhash\argon2
crypto_pwhash\argon2
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
crypto_pwhash\scryptsalsa208sha256
crypto_pwhash\scryptsalsa208sha256
+
+ crypto_shorthash\siphash24\ref
+
crypto_scalarmult\curve25519
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
crypto_scalarmult\curve25519\donna_c64
crypto_scalarmult\curve25519\ref10
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_onetimeauth\poly1305\sse2
crypto_stream\chacha20
-
+
+ crypto_stream\chacha20\ref
+
+
crypto_stream\chacha20\dolbeau
@@ -497,28 +659,19 @@
crypto_stream\chacha20\dolbeau
-
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
-
- crypto_stream\salsa20\xmm6int
-
-
+
crypto_stream\salsa20\xmm6int
@@ -527,209 +680,23 @@
crypto_stream\salsa20\xmm6int
-
+
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
-
- include
+
+ crypto_stream\salsa20\xmm6int
-
- include\sodium
+
+ crypto_stream\salsa20\xmm6
-
- include\sodium
+
+ crypto_core\curve25519\ref10
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
+
+ crypto_core\curve25519\ref10
@@ -910,12 +877,6 @@
{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}
-
- {2eb5e3c2-7e5d-386b-9464-05d69140360c}
-
-
- {775480be-a567-323a-96f8-598899bf97f9}
-
{806b6ff3-578b-308a-a359-0f5ed8472ecc}
diff --git a/builds/msvc/vs2013/libsodium/libsodium.vcxproj b/builds/msvc/vs2013/libsodium/libsodium.vcxproj
index 4a800f41..90ec3ddf 100644
--- a/builds/msvc/vs2013/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2013/libsodium/libsodium.vcxproj
@@ -77,243 +77,232 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
+
-
+
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
index f3453f82..cecf07ba 100644
--- a/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
@@ -24,98 +24,128 @@
-
- crypto_aead\aes256gcm\aesni
+
+ crypto_generichash
-
- crypto_aead\chacha20poly1305\sodium
+
+ crypto_generichash\blake2b
-
- crypto_aead\xchacha20poly1305\sodium
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_kx
+
+
+ crypto_sign
+
+
+ crypto_sign\ed25519
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox\xsalsa20poly1305
+
+
+ crypto_secretbox\xchacha20poly1305
+
+
+ crypto_pwhash
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256\nosse
+
+
+ crypto_pwhash\scryptsalsa208sha256\sse
+
+
+ crypto_verify\sodium
crypto_auth
-
- crypto_auth\hmacsha256
-
crypto_auth\hmacsha512
crypto_auth\hmacsha512256
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xsalsa20poly1305
-
-
- crypto_core\curve25519\ref10
-
-
- crypto_core\hchacha20
-
-
- crypto_core\hsalsa20
-
-
- crypto_core\hsalsa20\ref2
-
-
- crypto_core\salsa\ref
-
-
- crypto_generichash
-
-
- crypto_generichash\blake2b
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_hash
-
-
- crypto_hash\sha256
-
-
- crypto_hash\sha256\cp
-
-
- crypto_hash\sha512
-
-
- crypto_hash\sha512\cp
+
+ crypto_auth\hmacsha256
crypto_kdf
@@ -123,8 +153,41 @@
crypto_kdf\blake2b
-
- crypto_kx
+
+ crypto_shorthash
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_scalarmult
+
+
+ crypto_scalarmult\curve25519
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\donna_c64
+
+
+ crypto_scalarmult\curve25519\ref10
crypto_onetimeauth
@@ -138,177 +201,84 @@
crypto_onetimeauth\poly1305\sse2
-
- crypto_pwhash
+
+ randombytes
-
- crypto_pwhash\argon2
+
+ randombytes\sysrandom
-
- crypto_pwhash\argon2
+
+ randombytes\salsa20
-
- crypto_pwhash\argon2
+
+ randombytes\nativeclient
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xsalsa20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
-
-
- crypto_pwhash\scryptsalsa208sha256\nosse
-
-
- crypto_pwhash\scryptsalsa208sha256\sse
-
-
- crypto_scalarmult
-
-
- crypto_scalarmult\curve25519
-
-
- crypto_scalarmult\curve25519\donna_c64
-
-
- crypto_scalarmult\curve25519\ref10
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_secretbox
-
-
- crypto_secretbox
-
-
- crypto_secretbox\xchacha20poly1305
-
-
- crypto_secretbox\xsalsa20poly1305
-
-
- crypto_secretstream\xchacha20poly1305
-
-
- crypto_shorthash
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign
-
-
- crypto_sign\ed25519
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
+
+ sodium
crypto_stream
-
- crypto_stream\aes128ctr
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_stream\xchacha20
crypto_stream\chacha20
+
+ crypto_stream\chacha20\ref
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
+
+ crypto_stream\salsa20\xmm6
+
crypto_stream\salsa2012
@@ -321,171 +291,363 @@
crypto_stream\salsa208\ref
-
- crypto_stream\xchacha20
-
crypto_stream\xsalsa20
-
- crypto_verify\sodium
+
+ crypto_hash
-
- randombytes
+
+ crypto_hash\sha512
-
- randombytes\nativeclient
+
+ crypto_hash\sha512\cp
-
- randombytes\salsa20
+
+ crypto_hash\sha256
-
- randombytes\sysrandom
+
+ crypto_hash\sha256\cp
-
- sodium
+
+ crypto_aead\xchacha20poly1305\sodium
-
- sodium
+
+ crypto_aead\aes256gcm\aesni
-
- sodium
+
+ crypto_aead\chacha20poly1305\sodium
-
- sodium
+
+ crypto_secretstream\xchacha20poly1305
-
- sodium
+
+ crypto_core\salsa\ref
+
+
+ crypto_core\hchacha20
+
+
+ crypto_core\hsalsa20
+
+
+ crypto_core\hsalsa20\ref2
+
+
+ crypto_core\curve25519\ref10
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
-
- crypto_generichash\blake2b\ref
+
+ crypto_sign\ed25519\ref10
-
- crypto_generichash\blake2b\ref
+
+ include
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_onetimeauth\poly1305
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\sse2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
crypto_pwhash\argon2
crypto_pwhash\argon2
-
- crypto_pwhash\argon2
-
-
+
crypto_pwhash\argon2
crypto_pwhash\argon2
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
crypto_pwhash\scryptsalsa208sha256
crypto_pwhash\scryptsalsa208sha256
+
+ crypto_shorthash\siphash24\ref
+
crypto_scalarmult\curve25519
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
crypto_scalarmult\curve25519\donna_c64
crypto_scalarmult\curve25519\ref10
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_onetimeauth\poly1305\sse2
crypto_stream\chacha20
-
+
+ crypto_stream\chacha20\ref
+
+
crypto_stream\chacha20\dolbeau
@@ -497,28 +659,19 @@
crypto_stream\chacha20\dolbeau
-
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
-
- crypto_stream\salsa20\xmm6int
-
-
+
crypto_stream\salsa20\xmm6int
@@ -527,209 +680,23 @@
crypto_stream\salsa20\xmm6int
-
+
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
-
- include
+
+ crypto_stream\salsa20\xmm6int
-
- include\sodium
+
+ crypto_stream\salsa20\xmm6
-
- include\sodium
+
+ crypto_core\curve25519\ref10
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
+
+ crypto_core\curve25519\ref10
@@ -910,12 +877,6 @@
{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}
-
- {2eb5e3c2-7e5d-386b-9464-05d69140360c}
-
-
- {775480be-a567-323a-96f8-598899bf97f9}
-
{806b6ff3-578b-308a-a359-0f5ed8472ecc}
diff --git a/builds/msvc/vs2015/libsodium/libsodium.vcxproj b/builds/msvc/vs2015/libsodium/libsodium.vcxproj
index 65cd6e47..d7bf87ee 100644
--- a/builds/msvc/vs2015/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2015/libsodium/libsodium.vcxproj
@@ -77,243 +77,232 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
+
-
+
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
index f3453f82..cecf07ba 100644
--- a/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
@@ -24,98 +24,128 @@
-
- crypto_aead\aes256gcm\aesni
+
+ crypto_generichash
-
- crypto_aead\chacha20poly1305\sodium
+
+ crypto_generichash\blake2b
-
- crypto_aead\xchacha20poly1305\sodium
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_kx
+
+
+ crypto_sign
+
+
+ crypto_sign\ed25519
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox\xsalsa20poly1305
+
+
+ crypto_secretbox\xchacha20poly1305
+
+
+ crypto_pwhash
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256\nosse
+
+
+ crypto_pwhash\scryptsalsa208sha256\sse
+
+
+ crypto_verify\sodium
crypto_auth
-
- crypto_auth\hmacsha256
-
crypto_auth\hmacsha512
crypto_auth\hmacsha512256
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xsalsa20poly1305
-
-
- crypto_core\curve25519\ref10
-
-
- crypto_core\hchacha20
-
-
- crypto_core\hsalsa20
-
-
- crypto_core\hsalsa20\ref2
-
-
- crypto_core\salsa\ref
-
-
- crypto_generichash
-
-
- crypto_generichash\blake2b
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_hash
-
-
- crypto_hash\sha256
-
-
- crypto_hash\sha256\cp
-
-
- crypto_hash\sha512
-
-
- crypto_hash\sha512\cp
+
+ crypto_auth\hmacsha256
crypto_kdf
@@ -123,8 +153,41 @@
crypto_kdf\blake2b
-
- crypto_kx
+
+ crypto_shorthash
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_scalarmult
+
+
+ crypto_scalarmult\curve25519
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\donna_c64
+
+
+ crypto_scalarmult\curve25519\ref10
crypto_onetimeauth
@@ -138,177 +201,84 @@
crypto_onetimeauth\poly1305\sse2
-
- crypto_pwhash
+
+ randombytes
-
- crypto_pwhash\argon2
+
+ randombytes\sysrandom
-
- crypto_pwhash\argon2
+
+ randombytes\salsa20
-
- crypto_pwhash\argon2
+
+ randombytes\nativeclient
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xsalsa20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
-
-
- crypto_pwhash\scryptsalsa208sha256\nosse
-
-
- crypto_pwhash\scryptsalsa208sha256\sse
-
-
- crypto_scalarmult
-
-
- crypto_scalarmult\curve25519
-
-
- crypto_scalarmult\curve25519\donna_c64
-
-
- crypto_scalarmult\curve25519\ref10
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_secretbox
-
-
- crypto_secretbox
-
-
- crypto_secretbox\xchacha20poly1305
-
-
- crypto_secretbox\xsalsa20poly1305
-
-
- crypto_secretstream\xchacha20poly1305
-
-
- crypto_shorthash
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign
-
-
- crypto_sign\ed25519
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
+
+ sodium
crypto_stream
-
- crypto_stream\aes128ctr
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_stream\xchacha20
crypto_stream\chacha20
+
+ crypto_stream\chacha20\ref
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
+
+ crypto_stream\salsa20\xmm6
+
crypto_stream\salsa2012
@@ -321,171 +291,363 @@
crypto_stream\salsa208\ref
-
- crypto_stream\xchacha20
-
crypto_stream\xsalsa20
-
- crypto_verify\sodium
+
+ crypto_hash
-
- randombytes
+
+ crypto_hash\sha512
-
- randombytes\nativeclient
+
+ crypto_hash\sha512\cp
-
- randombytes\salsa20
+
+ crypto_hash\sha256
-
- randombytes\sysrandom
+
+ crypto_hash\sha256\cp
-
- sodium
+
+ crypto_aead\xchacha20poly1305\sodium
-
- sodium
+
+ crypto_aead\aes256gcm\aesni
-
- sodium
+
+ crypto_aead\chacha20poly1305\sodium
-
- sodium
+
+ crypto_secretstream\xchacha20poly1305
-
- sodium
+
+ crypto_core\salsa\ref
+
+
+ crypto_core\hchacha20
+
+
+ crypto_core\hsalsa20
+
+
+ crypto_core\hsalsa20\ref2
+
+
+ crypto_core\curve25519\ref10
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
-
- crypto_generichash\blake2b\ref
+
+ crypto_sign\ed25519\ref10
-
- crypto_generichash\blake2b\ref
+
+ include
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_onetimeauth\poly1305
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\sse2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
crypto_pwhash\argon2
crypto_pwhash\argon2
-
- crypto_pwhash\argon2
-
-
+
crypto_pwhash\argon2
crypto_pwhash\argon2
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
crypto_pwhash\scryptsalsa208sha256
crypto_pwhash\scryptsalsa208sha256
+
+ crypto_shorthash\siphash24\ref
+
crypto_scalarmult\curve25519
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
crypto_scalarmult\curve25519\donna_c64
crypto_scalarmult\curve25519\ref10
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_onetimeauth\poly1305\sse2
crypto_stream\chacha20
-
+
+ crypto_stream\chacha20\ref
+
+
crypto_stream\chacha20\dolbeau
@@ -497,28 +659,19 @@
crypto_stream\chacha20\dolbeau
-
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
-
- crypto_stream\salsa20\xmm6int
-
-
+
crypto_stream\salsa20\xmm6int
@@ -527,209 +680,23 @@
crypto_stream\salsa20\xmm6int
-
+
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
-
- include
+
+ crypto_stream\salsa20\xmm6int
-
- include\sodium
+
+ crypto_stream\salsa20\xmm6
-
- include\sodium
+
+ crypto_core\curve25519\ref10
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
+
+ crypto_core\curve25519\ref10
@@ -910,12 +877,6 @@
{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}
-
- {2eb5e3c2-7e5d-386b-9464-05d69140360c}
-
-
- {775480be-a567-323a-96f8-598899bf97f9}
-
{806b6ff3-578b-308a-a359-0f5ed8472ecc}
diff --git a/builds/msvc/vs2017/libsodium/libsodium.vcxproj b/builds/msvc/vs2017/libsodium/libsodium.vcxproj
index 4629e406..57817ce7 100644
--- a/builds/msvc/vs2017/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2017/libsodium/libsodium.vcxproj
@@ -77,243 +77,232 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
+
-
+
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
index f3453f82..cecf07ba 100644
--- a/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
@@ -24,98 +24,128 @@
-
- crypto_aead\aes256gcm\aesni
+
+ crypto_generichash
-
- crypto_aead\chacha20poly1305\sodium
+
+ crypto_generichash\blake2b
-
- crypto_aead\xchacha20poly1305\sodium
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_kx
+
+
+ crypto_sign
+
+
+ crypto_sign\ed25519
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_sign\ed25519\ref10
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox
+
+
+ crypto_secretbox\xsalsa20poly1305
+
+
+ crypto_secretbox\xchacha20poly1305
+
+
+ crypto_pwhash
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256
+
+
+ crypto_pwhash\scryptsalsa208sha256\nosse
+
+
+ crypto_pwhash\scryptsalsa208sha256\sse
+
+
+ crypto_verify\sodium
crypto_auth
-
- crypto_auth\hmacsha256
-
crypto_auth\hmacsha512
crypto_auth\hmacsha512256
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xchacha20poly1305
-
-
- crypto_box\curve25519xsalsa20poly1305
-
-
- crypto_core\curve25519\ref10
-
-
- crypto_core\hchacha20
-
-
- crypto_core\hsalsa20
-
-
- crypto_core\hsalsa20\ref2
-
-
- crypto_core\salsa\ref
-
-
- crypto_generichash
-
-
- crypto_generichash\blake2b
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_generichash\blake2b\ref
-
-
- crypto_hash
-
-
- crypto_hash\sha256
-
-
- crypto_hash\sha256\cp
-
-
- crypto_hash\sha512
-
-
- crypto_hash\sha512\cp
+
+ crypto_auth\hmacsha256
crypto_kdf
@@ -123,8 +153,41 @@
crypto_kdf\blake2b
-
- crypto_kx
+
+ crypto_shorthash
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_shorthash\siphash24\ref
+
+
+ crypto_scalarmult
+
+
+ crypto_scalarmult\curve25519
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\donna_c64
+
+
+ crypto_scalarmult\curve25519\ref10
crypto_onetimeauth
@@ -138,177 +201,84 @@
crypto_onetimeauth\poly1305\sse2
-
- crypto_pwhash
+
+ randombytes
-
- crypto_pwhash\argon2
+
+ randombytes\sysrandom
-
- crypto_pwhash\argon2
+
+ randombytes\salsa20
-
- crypto_pwhash\argon2
+
+ randombytes\nativeclient
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xsalsa20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ crypto_box\curve25519xchacha20poly1305
-
- crypto_pwhash\argon2
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
+
+ sodium
-
- crypto_pwhash\scryptsalsa208sha256
-
-
- crypto_pwhash\scryptsalsa208sha256\nosse
-
-
- crypto_pwhash\scryptsalsa208sha256\sse
-
-
- crypto_scalarmult
-
-
- crypto_scalarmult\curve25519
-
-
- crypto_scalarmult\curve25519\donna_c64
-
-
- crypto_scalarmult\curve25519\ref10
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_secretbox
-
-
- crypto_secretbox
-
-
- crypto_secretbox\xchacha20poly1305
-
-
- crypto_secretbox\xsalsa20poly1305
-
-
- crypto_secretstream\xchacha20poly1305
-
-
- crypto_shorthash
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign
-
-
- crypto_sign\ed25519
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_sign\ed25519\ref10
+
+ sodium
crypto_stream
-
- crypto_stream\aes128ctr
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_stream\xchacha20
crypto_stream\chacha20
+
+ crypto_stream\chacha20\ref
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
+
+ crypto_stream\salsa20\xmm6
+
crypto_stream\salsa2012
@@ -321,171 +291,363 @@
crypto_stream\salsa208\ref
-
- crypto_stream\xchacha20
-
crypto_stream\xsalsa20
-
- crypto_verify\sodium
+
+ crypto_hash
-
- randombytes
+
+ crypto_hash\sha512
-
- randombytes\nativeclient
+
+ crypto_hash\sha512\cp
-
- randombytes\salsa20
+
+ crypto_hash\sha256
-
- randombytes\sysrandom
+
+ crypto_hash\sha256\cp
-
- sodium
+
+ crypto_aead\xchacha20poly1305\sodium
-
- sodium
+
+ crypto_aead\aes256gcm\aesni
-
- sodium
+
+ crypto_aead\chacha20poly1305\sodium
-
- sodium
+
+ crypto_secretstream\xchacha20poly1305
-
- sodium
+
+ crypto_core\salsa\ref
+
+
+ crypto_core\hchacha20
+
+
+ crypto_core\hsalsa20
+
+
+ crypto_core\hsalsa20\ref2
+
+
+ crypto_core\curve25519\ref10
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
-
- crypto_core\curve25519\ref10
+
+ crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
+
+ crypto_generichash\blake2b\ref
+
+
+ crypto_generichash\blake2b\ref
+
crypto_generichash\blake2b\ref
crypto_generichash\blake2b\ref
-
- crypto_generichash\blake2b\ref
+
+ crypto_sign\ed25519\ref10
-
- crypto_generichash\blake2b\ref
+
+ include
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_generichash\blake2b\ref
+
+ include\sodium
-
- crypto_onetimeauth\poly1305
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\donna
+
+ include\sodium
-
- crypto_onetimeauth\poly1305\sse2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
- crypto_pwhash\argon2
+
+ include\sodium
-
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
+ include\sodium\private
+
+
crypto_pwhash\argon2
crypto_pwhash\argon2
-
- crypto_pwhash\argon2
-
-
+
crypto_pwhash\argon2
crypto_pwhash\argon2
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
+
+ crypto_pwhash\argon2
+
crypto_pwhash\scryptsalsa208sha256
crypto_pwhash\scryptsalsa208sha256
+
+ crypto_shorthash\siphash24\ref
+
crypto_scalarmult\curve25519
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
+
+ crypto_scalarmult\curve25519\sandy2x
+
crypto_scalarmult\curve25519\donna_c64
crypto_scalarmult\curve25519\ref10
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
+
+ crypto_onetimeauth\poly1305\donna
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_scalarmult\curve25519\sandy2x
-
-
- crypto_shorthash\siphash24\ref
-
-
- crypto_sign\ed25519\ref10
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
-
-
- crypto_stream\aes128ctr\nacl
+
+ crypto_onetimeauth\poly1305\sse2
crypto_stream\chacha20
-
+
+ crypto_stream\chacha20\ref
+
+
crypto_stream\chacha20\dolbeau
@@ -497,28 +659,19 @@
crypto_stream\chacha20\dolbeau
-
+
crypto_stream\chacha20\dolbeau
crypto_stream\chacha20\dolbeau
-
- crypto_stream\chacha20\ref
-
crypto_stream\salsa20
crypto_stream\salsa20\ref
-
- crypto_stream\salsa20\xmm6
-
-
- crypto_stream\salsa20\xmm6int
-
-
+
crypto_stream\salsa20\xmm6int
@@ -527,209 +680,23 @@
crypto_stream\salsa20\xmm6int
-
+
crypto_stream\salsa20\xmm6int
crypto_stream\salsa20\xmm6int
-
- include
+
+ crypto_stream\salsa20\xmm6int
-
- include\sodium
+
+ crypto_stream\salsa20\xmm6
-
- include\sodium
+
+ crypto_core\curve25519\ref10
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
-
-
- include\sodium\private
+
+ crypto_core\curve25519\ref10
@@ -910,12 +877,6 @@
{eaedd08a-46f8-3d12-9e8d-bb3ee3ead5f6}
-
- {2eb5e3c2-7e5d-386b-9464-05d69140360c}
-
-
- {775480be-a567-323a-96f8-598899bf97f9}
-
{806b6ff3-578b-308a-a359-0f5ed8472ecc}
diff --git a/dist-build/emscripten-symbols.def b/dist-build/emscripten-symbols.def
index 45b824bc..b5238769 100644
--- a/dist-build/emscripten-symbols.def
+++ b/dist-build/emscripten-symbols.def
@@ -449,14 +449,6 @@ _crypto_sign_statebytes 1 1
_crypto_sign_update 1 1
_crypto_sign_verify_detached 1 1
_crypto_stream 0 1
-_crypto_stream_aes128ctr 0 1
-_crypto_stream_aes128ctr_afternm 0 1
-_crypto_stream_aes128ctr_beforenm 0 1
-_crypto_stream_aes128ctr_beforenmbytes 0 1
-_crypto_stream_aes128ctr_keybytes 0 1
-_crypto_stream_aes128ctr_noncebytes 0 1
-_crypto_stream_aes128ctr_xor 0 1
-_crypto_stream_aes128ctr_xor_afternm 0 1
_crypto_stream_chacha20 0 1
_crypto_stream_chacha20_ietf 0 1
_crypto_stream_chacha20_ietf_keybytes 0 1
diff --git a/dist-build/emscripten-wasm.sh b/dist-build/emscripten-wasm.sh
index 475f1d91..4af2e85a 100755
--- a/dist-build/emscripten-wasm.sh
+++ b/dist-build/emscripten-wasm.sh
@@ -2,7 +2,7 @@
export MAKE_FLAGS='-j4'
export EXPORTED_FUNCTIONS_STANDARD='["_crypto_aead_chacha20poly1305_abytes","_crypto_aead_chacha20poly1305_decrypt","_crypto_aead_chacha20poly1305_decrypt_detached","_crypto_aead_chacha20poly1305_encrypt","_crypto_aead_chacha20poly1305_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_abytes","_crypto_aead_chacha20poly1305_ietf_decrypt","_crypto_aead_chacha20poly1305_ietf_decrypt_detached","_crypto_aead_chacha20poly1305_ietf_encrypt","_crypto_aead_chacha20poly1305_ietf_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_keybytes","_crypto_aead_chacha20poly1305_ietf_keygen","_crypto_aead_chacha20poly1305_ietf_npubbytes","_crypto_aead_chacha20poly1305_ietf_nsecbytes","_crypto_aead_chacha20poly1305_keybytes","_crypto_aead_chacha20poly1305_keygen","_crypto_aead_chacha20poly1305_npubbytes","_crypto_aead_chacha20poly1305_nsecbytes","_crypto_aead_xchacha20poly1305_ietf_abytes","_crypto_aead_xchacha20poly1305_ietf_decrypt","_crypto_aead_xchacha20poly1305_ietf_decrypt_detached","_crypto_aead_xchacha20poly1305_ietf_encrypt","_crypto_aead_xchacha20poly1305_ietf_encrypt_detached","_crypto_aead_xchacha20poly1305_ietf_keybytes","_crypto_aead_xchacha20poly1305_ietf_keygen","_crypto_aead_xchacha20poly1305_ietf_npubbytes","_crypto_aead_xchacha20poly1305_ietf_nsecbytes","_crypto_auth","_crypto_auth_bytes","_crypto_auth_keybytes","_crypto_auth_keygen","_crypto_auth_verify","_crypto_box_beforenm","_crypto_box_beforenmbytes","_crypto_box_detached","_crypto_box_detached_afternm","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_macbytes","_crypto_box_noncebytes","_crypto_box_open_detached","_crypto_box_open_detached_afternm","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_publickeybytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_sealbytes","_crypto_box_secretkeybytes","_crypto_box_seed_keypair","_crypto_box_seedbytes","_crypto_core_hchacha20","_crypto_core_hchacha20_constbytes","_crypto_core_hchacha20_inputbytes","_crypto_core_hchacha20_keybytes","_crypto_core_hchacha20_outputbytes","_crypto_generichash","_crypto_generichash_bytes","_crypto_generichash_bytes_max","_crypto_generichash_bytes_min","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keybytes_max","_crypto_generichash_keybytes_min","_crypto_generichash_keygen","_crypto_generichash_statebytes","_crypto_generichash_update","_crypto_hash","_crypto_hash_bytes","_crypto_kdf_bytes_max","_crypto_kdf_bytes_min","_crypto_kdf_contextbytes","_crypto_kdf_derive_from_key","_crypto_kdf_keybytes","_crypto_kdf_keygen","_crypto_kx_client_session_keys","_crypto_kx_keypair","_crypto_kx_publickeybytes","_crypto_kx_secretkeybytes","_crypto_kx_seed_keypair","_crypto_kx_seedbytes","_crypto_kx_server_session_keys","_crypto_kx_sessionkeybytes","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_bytes","_crypto_scalarmult_scalarbytes","_crypto_secretbox_detached","_crypto_secretbox_easy","_crypto_secretbox_keybytes","_crypto_secretbox_keygen","_crypto_secretbox_macbytes","_crypto_secretbox_noncebytes","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_secretstream_xchacha20poly1305_abytes","_crypto_secretstream_xchacha20poly1305_headerbytes","_crypto_secretstream_xchacha20poly1305_init_pull","_crypto_secretstream_xchacha20poly1305_init_push","_crypto_secretstream_xchacha20poly1305_keybytes","_crypto_secretstream_xchacha20poly1305_keygen","_crypto_secretstream_xchacha20poly1305_messagebytes_max","_crypto_secretstream_xchacha20poly1305_pull","_crypto_secretstream_xchacha20poly1305_push","_crypto_secretstream_xchacha20poly1305_rekey","_crypto_secretstream_xchacha20poly1305_statebytes","_crypto_secretstream_xchacha20poly1305_tag_final","_crypto_secretstream_xchacha20poly1305_tag_message","_crypto_secretstream_xchacha20poly1305_tag_push","_crypto_secretstream_xchacha20poly1305_tag_rekey","_crypto_shorthash","_crypto_shorthash_bytes","_crypto_shorthash_keybytes","_crypto_shorthash_keygen","_crypto_sign","_crypto_sign_bytes","_crypto_sign_detached","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_final_create","_crypto_sign_final_verify","_crypto_sign_init","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_publickeybytes","_crypto_sign_secretkeybytes","_crypto_sign_seed_keypair","_crypto_sign_seedbytes","_crypto_sign_statebytes","_crypto_sign_update","_crypto_sign_verify_detached","_crypto_stream_keygen","_randombytes","_randombytes_buf","_randombytes_buf_deterministic","_randombytes_close","_randombytes_random","_randombytes_seedbytes","_randombytes_stir","_randombytes_uniform","_sodium_base642bin","_sodium_base64_encoded_len","_sodium_bin2base64","_sodium_bin2hex","_sodium_hex2bin","_sodium_init","_sodium_library_minimal","_sodium_library_version_major","_sodium_library_version_minor","_sodium_pad","_sodium_unpad","_sodium_version_string"]'
-export EXPORTED_FUNCTIONS_SUMO='["_crypto_aead_chacha20poly1305_abytes","_crypto_aead_chacha20poly1305_decrypt","_crypto_aead_chacha20poly1305_decrypt_detached","_crypto_aead_chacha20poly1305_encrypt","_crypto_aead_chacha20poly1305_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_abytes","_crypto_aead_chacha20poly1305_ietf_decrypt","_crypto_aead_chacha20poly1305_ietf_decrypt_detached","_crypto_aead_chacha20poly1305_ietf_encrypt","_crypto_aead_chacha20poly1305_ietf_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_keybytes","_crypto_aead_chacha20poly1305_ietf_keygen","_crypto_aead_chacha20poly1305_ietf_npubbytes","_crypto_aead_chacha20poly1305_ietf_nsecbytes","_crypto_aead_chacha20poly1305_keybytes","_crypto_aead_chacha20poly1305_keygen","_crypto_aead_chacha20poly1305_npubbytes","_crypto_aead_chacha20poly1305_nsecbytes","_crypto_aead_xchacha20poly1305_ietf_abytes","_crypto_aead_xchacha20poly1305_ietf_decrypt","_crypto_aead_xchacha20poly1305_ietf_decrypt_detached","_crypto_aead_xchacha20poly1305_ietf_encrypt","_crypto_aead_xchacha20poly1305_ietf_encrypt_detached","_crypto_aead_xchacha20poly1305_ietf_keybytes","_crypto_aead_xchacha20poly1305_ietf_keygen","_crypto_aead_xchacha20poly1305_ietf_npubbytes","_crypto_aead_xchacha20poly1305_ietf_nsecbytes","_crypto_auth","_crypto_auth_bytes","_crypto_auth_hmacsha256","_crypto_auth_hmacsha256_bytes","_crypto_auth_hmacsha256_final","_crypto_auth_hmacsha256_init","_crypto_auth_hmacsha256_keybytes","_crypto_auth_hmacsha256_keygen","_crypto_auth_hmacsha256_statebytes","_crypto_auth_hmacsha256_update","_crypto_auth_hmacsha256_verify","_crypto_auth_hmacsha512","_crypto_auth_hmacsha512256","_crypto_auth_hmacsha512256_bytes","_crypto_auth_hmacsha512256_final","_crypto_auth_hmacsha512256_init","_crypto_auth_hmacsha512256_keybytes","_crypto_auth_hmacsha512256_keygen","_crypto_auth_hmacsha512256_statebytes","_crypto_auth_hmacsha512256_update","_crypto_auth_hmacsha512256_verify","_crypto_auth_hmacsha512_bytes","_crypto_auth_hmacsha512_final","_crypto_auth_hmacsha512_init","_crypto_auth_hmacsha512_keybytes","_crypto_auth_hmacsha512_keygen","_crypto_auth_hmacsha512_statebytes","_crypto_auth_hmacsha512_update","_crypto_auth_hmacsha512_verify","_crypto_auth_keybytes","_crypto_auth_keygen","_crypto_auth_primitive","_crypto_auth_verify","_crypto_box","_crypto_box_afternm","_crypto_box_beforenm","_crypto_box_beforenmbytes","_crypto_box_boxzerobytes","_crypto_box_curve25519xchacha20poly1305_beforenm","_crypto_box_curve25519xchacha20poly1305_beforenmbytes","_crypto_box_curve25519xchacha20poly1305_detached","_crypto_box_curve25519xchacha20poly1305_detached_afternm","_crypto_box_curve25519xchacha20poly1305_easy","_crypto_box_curve25519xchacha20poly1305_easy_afternm","_crypto_box_curve25519xchacha20poly1305_keypair","_crypto_box_curve25519xchacha20poly1305_macbytes","_crypto_box_curve25519xchacha20poly1305_noncebytes","_crypto_box_curve25519xchacha20poly1305_open_detached","_crypto_box_curve25519xchacha20poly1305_open_detached_afternm","_crypto_box_curve25519xchacha20poly1305_open_easy","_crypto_box_curve25519xchacha20poly1305_open_easy_afternm","_crypto_box_curve25519xchacha20poly1305_publickeybytes","_crypto_box_curve25519xchacha20poly1305_seal","_crypto_box_curve25519xchacha20poly1305_seal_open","_crypto_box_curve25519xchacha20poly1305_sealbytes","_crypto_box_curve25519xchacha20poly1305_secretkeybytes","_crypto_box_curve25519xchacha20poly1305_seed_keypair","_crypto_box_curve25519xchacha20poly1305_seedbytes","_crypto_box_curve25519xsalsa20poly1305","_crypto_box_curve25519xsalsa20poly1305_afternm","_crypto_box_curve25519xsalsa20poly1305_beforenm","_crypto_box_curve25519xsalsa20poly1305_beforenmbytes","_crypto_box_curve25519xsalsa20poly1305_boxzerobytes","_crypto_box_curve25519xsalsa20poly1305_keypair","_crypto_box_curve25519xsalsa20poly1305_macbytes","_crypto_box_curve25519xsalsa20poly1305_noncebytes","_crypto_box_curve25519xsalsa20poly1305_open","_crypto_box_curve25519xsalsa20poly1305_open_afternm","_crypto_box_curve25519xsalsa20poly1305_publickeybytes","_crypto_box_curve25519xsalsa20poly1305_secretkeybytes","_crypto_box_curve25519xsalsa20poly1305_seed_keypair","_crypto_box_curve25519xsalsa20poly1305_seedbytes","_crypto_box_curve25519xsalsa20poly1305_zerobytes","_crypto_box_detached","_crypto_box_detached_afternm","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_macbytes","_crypto_box_noncebytes","_crypto_box_open","_crypto_box_open_afternm","_crypto_box_open_detached","_crypto_box_open_detached_afternm","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_primitive","_crypto_box_publickeybytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_sealbytes","_crypto_box_secretkeybytes","_crypto_box_seed_keypair","_crypto_box_seedbytes","_crypto_box_zerobytes","_crypto_core_hchacha20","_crypto_core_hchacha20_constbytes","_crypto_core_hchacha20_inputbytes","_crypto_core_hchacha20_keybytes","_crypto_core_hchacha20_outputbytes","_crypto_core_hsalsa20","_crypto_core_hsalsa20_constbytes","_crypto_core_hsalsa20_inputbytes","_crypto_core_hsalsa20_keybytes","_crypto_core_hsalsa20_outputbytes","_crypto_core_salsa20","_crypto_core_salsa2012","_crypto_core_salsa2012_constbytes","_crypto_core_salsa2012_inputbytes","_crypto_core_salsa2012_keybytes","_crypto_core_salsa2012_outputbytes","_crypto_core_salsa208","_crypto_core_salsa208_constbytes","_crypto_core_salsa208_inputbytes","_crypto_core_salsa208_keybytes","_crypto_core_salsa208_outputbytes","_crypto_core_salsa20_constbytes","_crypto_core_salsa20_inputbytes","_crypto_core_salsa20_keybytes","_crypto_core_salsa20_outputbytes","_crypto_generichash","_crypto_generichash_blake2b","_crypto_generichash_blake2b_bytes","_crypto_generichash_blake2b_bytes_max","_crypto_generichash_blake2b_bytes_min","_crypto_generichash_blake2b_final","_crypto_generichash_blake2b_init","_crypto_generichash_blake2b_init_salt_personal","_crypto_generichash_blake2b_keybytes","_crypto_generichash_blake2b_keybytes_max","_crypto_generichash_blake2b_keybytes_min","_crypto_generichash_blake2b_keygen","_crypto_generichash_blake2b_personalbytes","_crypto_generichash_blake2b_salt_personal","_crypto_generichash_blake2b_saltbytes","_crypto_generichash_blake2b_statebytes","_crypto_generichash_blake2b_update","_crypto_generichash_bytes","_crypto_generichash_bytes_max","_crypto_generichash_bytes_min","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keybytes_max","_crypto_generichash_keybytes_min","_crypto_generichash_keygen","_crypto_generichash_primitive","_crypto_generichash_statebytes","_crypto_generichash_update","_crypto_hash","_crypto_hash_bytes","_crypto_hash_primitive","_crypto_hash_sha256","_crypto_hash_sha256_bytes","_crypto_hash_sha256_final","_crypto_hash_sha256_init","_crypto_hash_sha256_statebytes","_crypto_hash_sha256_update","_crypto_hash_sha512","_crypto_hash_sha512_bytes","_crypto_hash_sha512_final","_crypto_hash_sha512_init","_crypto_hash_sha512_statebytes","_crypto_hash_sha512_update","_crypto_kdf_blake2b_bytes_max","_crypto_kdf_blake2b_bytes_min","_crypto_kdf_blake2b_contextbytes","_crypto_kdf_blake2b_derive_from_key","_crypto_kdf_blake2b_keybytes","_crypto_kdf_bytes_max","_crypto_kdf_bytes_min","_crypto_kdf_contextbytes","_crypto_kdf_derive_from_key","_crypto_kdf_keybytes","_crypto_kdf_keygen","_crypto_kdf_primitive","_crypto_kx_client_session_keys","_crypto_kx_keypair","_crypto_kx_primitive","_crypto_kx_publickeybytes","_crypto_kx_secretkeybytes","_crypto_kx_seed_keypair","_crypto_kx_seedbytes","_crypto_kx_server_session_keys","_crypto_kx_sessionkeybytes","_crypto_onetimeauth","_crypto_onetimeauth_bytes","_crypto_onetimeauth_final","_crypto_onetimeauth_init","_crypto_onetimeauth_keybytes","_crypto_onetimeauth_keygen","_crypto_onetimeauth_poly1305","_crypto_onetimeauth_poly1305_bytes","_crypto_onetimeauth_poly1305_final","_crypto_onetimeauth_poly1305_init","_crypto_onetimeauth_poly1305_keybytes","_crypto_onetimeauth_poly1305_keygen","_crypto_onetimeauth_poly1305_statebytes","_crypto_onetimeauth_poly1305_update","_crypto_onetimeauth_poly1305_verify","_crypto_onetimeauth_primitive","_crypto_onetimeauth_statebytes","_crypto_onetimeauth_update","_crypto_onetimeauth_verify","_crypto_pwhash","_crypto_pwhash_alg_argon2i13","_crypto_pwhash_alg_argon2id13","_crypto_pwhash_alg_default","_crypto_pwhash_argon2i","_crypto_pwhash_argon2i_alg_argon2i13","_crypto_pwhash_argon2i_bytes_max","_crypto_pwhash_argon2i_bytes_min","_crypto_pwhash_argon2i_memlimit_interactive","_crypto_pwhash_argon2i_memlimit_max","_crypto_pwhash_argon2i_memlimit_min","_crypto_pwhash_argon2i_memlimit_moderate","_crypto_pwhash_argon2i_memlimit_sensitive","_crypto_pwhash_argon2i_opslimit_interactive","_crypto_pwhash_argon2i_opslimit_max","_crypto_pwhash_argon2i_opslimit_min","_crypto_pwhash_argon2i_opslimit_moderate","_crypto_pwhash_argon2i_opslimit_sensitive","_crypto_pwhash_argon2i_passwd_max","_crypto_pwhash_argon2i_passwd_min","_crypto_pwhash_argon2i_saltbytes","_crypto_pwhash_argon2i_str","_crypto_pwhash_argon2i_str_needs_rehash","_crypto_pwhash_argon2i_str_verify","_crypto_pwhash_argon2i_strbytes","_crypto_pwhash_argon2i_strprefix","_crypto_pwhash_argon2id","_crypto_pwhash_argon2id_alg_argon2id13","_crypto_pwhash_argon2id_bytes_max","_crypto_pwhash_argon2id_bytes_min","_crypto_pwhash_argon2id_memlimit_interactive","_crypto_pwhash_argon2id_memlimit_max","_crypto_pwhash_argon2id_memlimit_min","_crypto_pwhash_argon2id_memlimit_moderate","_crypto_pwhash_argon2id_memlimit_sensitive","_crypto_pwhash_argon2id_opslimit_interactive","_crypto_pwhash_argon2id_opslimit_max","_crypto_pwhash_argon2id_opslimit_min","_crypto_pwhash_argon2id_opslimit_moderate","_crypto_pwhash_argon2id_opslimit_sensitive","_crypto_pwhash_argon2id_passwd_max","_crypto_pwhash_argon2id_passwd_min","_crypto_pwhash_argon2id_saltbytes","_crypto_pwhash_argon2id_str","_crypto_pwhash_argon2id_str_needs_rehash","_crypto_pwhash_argon2id_str_verify","_crypto_pwhash_argon2id_strbytes","_crypto_pwhash_argon2id_strprefix","_crypto_pwhash_bytes_max","_crypto_pwhash_bytes_min","_crypto_pwhash_memlimit_interactive","_crypto_pwhash_memlimit_max","_crypto_pwhash_memlimit_min","_crypto_pwhash_memlimit_moderate","_crypto_pwhash_memlimit_sensitive","_crypto_pwhash_opslimit_interactive","_crypto_pwhash_opslimit_max","_crypto_pwhash_opslimit_min","_crypto_pwhash_opslimit_moderate","_crypto_pwhash_opslimit_sensitive","_crypto_pwhash_passwd_max","_crypto_pwhash_passwd_min","_crypto_pwhash_primitive","_crypto_pwhash_saltbytes","_crypto_pwhash_scryptsalsa208sha256","_crypto_pwhash_scryptsalsa208sha256_bytes_max","_crypto_pwhash_scryptsalsa208sha256_bytes_min","_crypto_pwhash_scryptsalsa208sha256_ll","_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive","_crypto_pwhash_scryptsalsa208sha256_memlimit_max","_crypto_pwhash_scryptsalsa208sha256_memlimit_min","_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive","_crypto_pwhash_scryptsalsa208sha256_opslimit_max","_crypto_pwhash_scryptsalsa208sha256_opslimit_min","_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_passwd_max","_crypto_pwhash_scryptsalsa208sha256_passwd_min","_crypto_pwhash_scryptsalsa208sha256_saltbytes","_crypto_pwhash_scryptsalsa208sha256_str","_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash","_crypto_pwhash_scryptsalsa208sha256_str_verify","_crypto_pwhash_scryptsalsa208sha256_strbytes","_crypto_pwhash_scryptsalsa208sha256_strprefix","_crypto_pwhash_str","_crypto_pwhash_str_alg","_crypto_pwhash_str_needs_rehash","_crypto_pwhash_str_verify","_crypto_pwhash_strbytes","_crypto_pwhash_strprefix","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_bytes","_crypto_scalarmult_curve25519","_crypto_scalarmult_curve25519_base","_crypto_scalarmult_curve25519_bytes","_crypto_scalarmult_curve25519_scalarbytes","_crypto_scalarmult_primitive","_crypto_scalarmult_scalarbytes","_crypto_secretbox","_crypto_secretbox_boxzerobytes","_crypto_secretbox_detached","_crypto_secretbox_easy","_crypto_secretbox_keybytes","_crypto_secretbox_keygen","_crypto_secretbox_macbytes","_crypto_secretbox_noncebytes","_crypto_secretbox_open","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_secretbox_primitive","_crypto_secretbox_xchacha20poly1305_detached","_crypto_secretbox_xchacha20poly1305_easy","_crypto_secretbox_xchacha20poly1305_keybytes","_crypto_secretbox_xchacha20poly1305_macbytes","_crypto_secretbox_xchacha20poly1305_noncebytes","_crypto_secretbox_xchacha20poly1305_open_detached","_crypto_secretbox_xchacha20poly1305_open_easy","_crypto_secretbox_xsalsa20poly1305","_crypto_secretbox_xsalsa20poly1305_boxzerobytes","_crypto_secretbox_xsalsa20poly1305_keybytes","_crypto_secretbox_xsalsa20poly1305_keygen","_crypto_secretbox_xsalsa20poly1305_macbytes","_crypto_secretbox_xsalsa20poly1305_noncebytes","_crypto_secretbox_xsalsa20poly1305_open","_crypto_secretbox_xsalsa20poly1305_zerobytes","_crypto_secretbox_zerobytes","_crypto_secretstream_xchacha20poly1305_abytes","_crypto_secretstream_xchacha20poly1305_headerbytes","_crypto_secretstream_xchacha20poly1305_init_pull","_crypto_secretstream_xchacha20poly1305_init_push","_crypto_secretstream_xchacha20poly1305_keybytes","_crypto_secretstream_xchacha20poly1305_keygen","_crypto_secretstream_xchacha20poly1305_messagebytes_max","_crypto_secretstream_xchacha20poly1305_pull","_crypto_secretstream_xchacha20poly1305_push","_crypto_secretstream_xchacha20poly1305_rekey","_crypto_secretstream_xchacha20poly1305_statebytes","_crypto_secretstream_xchacha20poly1305_tag_final","_crypto_secretstream_xchacha20poly1305_tag_message","_crypto_secretstream_xchacha20poly1305_tag_push","_crypto_secretstream_xchacha20poly1305_tag_rekey","_crypto_shorthash","_crypto_shorthash_bytes","_crypto_shorthash_keybytes","_crypto_shorthash_keygen","_crypto_shorthash_primitive","_crypto_shorthash_siphash24","_crypto_shorthash_siphash24_bytes","_crypto_shorthash_siphash24_keybytes","_crypto_shorthash_siphashx24","_crypto_shorthash_siphashx24_bytes","_crypto_shorthash_siphashx24_keybytes","_crypto_sign","_crypto_sign_bytes","_crypto_sign_detached","_crypto_sign_ed25519","_crypto_sign_ed25519_bytes","_crypto_sign_ed25519_detached","_crypto_sign_ed25519_keypair","_crypto_sign_ed25519_open","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_publickeybytes","_crypto_sign_ed25519_secretkeybytes","_crypto_sign_ed25519_seed_keypair","_crypto_sign_ed25519_seedbytes","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_ed25519_sk_to_pk","_crypto_sign_ed25519_sk_to_seed","_crypto_sign_ed25519_verify_detached","_crypto_sign_ed25519ph_final_create","_crypto_sign_ed25519ph_final_verify","_crypto_sign_ed25519ph_init","_crypto_sign_ed25519ph_statebytes","_crypto_sign_ed25519ph_update","_crypto_sign_final_create","_crypto_sign_final_verify","_crypto_sign_init","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_primitive","_crypto_sign_publickeybytes","_crypto_sign_secretkeybytes","_crypto_sign_seed_keypair","_crypto_sign_seedbytes","_crypto_sign_statebytes","_crypto_sign_update","_crypto_sign_verify_detached","_crypto_stream","_crypto_stream_aes128ctr","_crypto_stream_aes128ctr_afternm","_crypto_stream_aes128ctr_beforenm","_crypto_stream_aes128ctr_beforenmbytes","_crypto_stream_aes128ctr_keybytes","_crypto_stream_aes128ctr_noncebytes","_crypto_stream_aes128ctr_xor","_crypto_stream_aes128ctr_xor_afternm","_crypto_stream_chacha20","_crypto_stream_chacha20_ietf","_crypto_stream_chacha20_ietf_keybytes","_crypto_stream_chacha20_ietf_keygen","_crypto_stream_chacha20_ietf_noncebytes","_crypto_stream_chacha20_ietf_xor","_crypto_stream_chacha20_ietf_xor_ic","_crypto_stream_chacha20_keybytes","_crypto_stream_chacha20_keygen","_crypto_stream_chacha20_noncebytes","_crypto_stream_chacha20_xor","_crypto_stream_chacha20_xor_ic","_crypto_stream_keybytes","_crypto_stream_keygen","_crypto_stream_noncebytes","_crypto_stream_primitive","_crypto_stream_salsa20","_crypto_stream_salsa2012","_crypto_stream_salsa2012_keybytes","_crypto_stream_salsa2012_keygen","_crypto_stream_salsa2012_noncebytes","_crypto_stream_salsa2012_xor","_crypto_stream_salsa208","_crypto_stream_salsa208_keybytes","_crypto_stream_salsa208_keygen","_crypto_stream_salsa208_messagebytes_max","_crypto_stream_salsa208_noncebytes","_crypto_stream_salsa208_xor","_crypto_stream_salsa20_keybytes","_crypto_stream_salsa20_keygen","_crypto_stream_salsa20_noncebytes","_crypto_stream_salsa20_xor","_crypto_stream_salsa20_xor_ic","_crypto_stream_xchacha20","_crypto_stream_xchacha20_keybytes","_crypto_stream_xchacha20_keygen","_crypto_stream_xchacha20_noncebytes","_crypto_stream_xchacha20_xor","_crypto_stream_xchacha20_xor_ic","_crypto_stream_xor","_crypto_stream_xsalsa20","_crypto_stream_xsalsa20_keybytes","_crypto_stream_xsalsa20_keygen","_crypto_stream_xsalsa20_noncebytes","_crypto_stream_xsalsa20_xor","_crypto_stream_xsalsa20_xor_ic","_crypto_verify_16","_crypto_verify_16_bytes","_crypto_verify_32","_crypto_verify_32_bytes","_crypto_verify_64","_crypto_verify_64_bytes","_randombytes","_randombytes_buf","_randombytes_buf_deterministic","_randombytes_close","_randombytes_implementation_name","_randombytes_random","_randombytes_seedbytes","_randombytes_stir","_randombytes_uniform","_sodium_base642bin","_sodium_base64_encoded_len","_sodium_bin2base64","_sodium_bin2hex","_sodium_hex2bin","_sodium_init","_sodium_library_minimal","_sodium_library_version_major","_sodium_library_version_minor","_sodium_pad","_sodium_unpad","_sodium_version_string"]'
+export EXPORTED_FUNCTIONS_SUMO='["_crypto_aead_chacha20poly1305_abytes","_crypto_aead_chacha20poly1305_decrypt","_crypto_aead_chacha20poly1305_decrypt_detached","_crypto_aead_chacha20poly1305_encrypt","_crypto_aead_chacha20poly1305_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_abytes","_crypto_aead_chacha20poly1305_ietf_decrypt","_crypto_aead_chacha20poly1305_ietf_decrypt_detached","_crypto_aead_chacha20poly1305_ietf_encrypt","_crypto_aead_chacha20poly1305_ietf_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_keybytes","_crypto_aead_chacha20poly1305_ietf_keygen","_crypto_aead_chacha20poly1305_ietf_npubbytes","_crypto_aead_chacha20poly1305_ietf_nsecbytes","_crypto_aead_chacha20poly1305_keybytes","_crypto_aead_chacha20poly1305_keygen","_crypto_aead_chacha20poly1305_npubbytes","_crypto_aead_chacha20poly1305_nsecbytes","_crypto_aead_xchacha20poly1305_ietf_abytes","_crypto_aead_xchacha20poly1305_ietf_decrypt","_crypto_aead_xchacha20poly1305_ietf_decrypt_detached","_crypto_aead_xchacha20poly1305_ietf_encrypt","_crypto_aead_xchacha20poly1305_ietf_encrypt_detached","_crypto_aead_xchacha20poly1305_ietf_keybytes","_crypto_aead_xchacha20poly1305_ietf_keygen","_crypto_aead_xchacha20poly1305_ietf_npubbytes","_crypto_aead_xchacha20poly1305_ietf_nsecbytes","_crypto_auth","_crypto_auth_bytes","_crypto_auth_hmacsha256","_crypto_auth_hmacsha256_bytes","_crypto_auth_hmacsha256_final","_crypto_auth_hmacsha256_init","_crypto_auth_hmacsha256_keybytes","_crypto_auth_hmacsha256_keygen","_crypto_auth_hmacsha256_statebytes","_crypto_auth_hmacsha256_update","_crypto_auth_hmacsha256_verify","_crypto_auth_hmacsha512","_crypto_auth_hmacsha512256","_crypto_auth_hmacsha512256_bytes","_crypto_auth_hmacsha512256_final","_crypto_auth_hmacsha512256_init","_crypto_auth_hmacsha512256_keybytes","_crypto_auth_hmacsha512256_keygen","_crypto_auth_hmacsha512256_statebytes","_crypto_auth_hmacsha512256_update","_crypto_auth_hmacsha512256_verify","_crypto_auth_hmacsha512_bytes","_crypto_auth_hmacsha512_final","_crypto_auth_hmacsha512_init","_crypto_auth_hmacsha512_keybytes","_crypto_auth_hmacsha512_keygen","_crypto_auth_hmacsha512_statebytes","_crypto_auth_hmacsha512_update","_crypto_auth_hmacsha512_verify","_crypto_auth_keybytes","_crypto_auth_keygen","_crypto_auth_primitive","_crypto_auth_verify","_crypto_box","_crypto_box_afternm","_crypto_box_beforenm","_crypto_box_beforenmbytes","_crypto_box_boxzerobytes","_crypto_box_curve25519xchacha20poly1305_beforenm","_crypto_box_curve25519xchacha20poly1305_beforenmbytes","_crypto_box_curve25519xchacha20poly1305_detached","_crypto_box_curve25519xchacha20poly1305_detached_afternm","_crypto_box_curve25519xchacha20poly1305_easy","_crypto_box_curve25519xchacha20poly1305_easy_afternm","_crypto_box_curve25519xchacha20poly1305_keypair","_crypto_box_curve25519xchacha20poly1305_macbytes","_crypto_box_curve25519xchacha20poly1305_noncebytes","_crypto_box_curve25519xchacha20poly1305_open_detached","_crypto_box_curve25519xchacha20poly1305_open_detached_afternm","_crypto_box_curve25519xchacha20poly1305_open_easy","_crypto_box_curve25519xchacha20poly1305_open_easy_afternm","_crypto_box_curve25519xchacha20poly1305_publickeybytes","_crypto_box_curve25519xchacha20poly1305_seal","_crypto_box_curve25519xchacha20poly1305_seal_open","_crypto_box_curve25519xchacha20poly1305_sealbytes","_crypto_box_curve25519xchacha20poly1305_secretkeybytes","_crypto_box_curve25519xchacha20poly1305_seed_keypair","_crypto_box_curve25519xchacha20poly1305_seedbytes","_crypto_box_curve25519xsalsa20poly1305","_crypto_box_curve25519xsalsa20poly1305_afternm","_crypto_box_curve25519xsalsa20poly1305_beforenm","_crypto_box_curve25519xsalsa20poly1305_beforenmbytes","_crypto_box_curve25519xsalsa20poly1305_boxzerobytes","_crypto_box_curve25519xsalsa20poly1305_keypair","_crypto_box_curve25519xsalsa20poly1305_macbytes","_crypto_box_curve25519xsalsa20poly1305_noncebytes","_crypto_box_curve25519xsalsa20poly1305_open","_crypto_box_curve25519xsalsa20poly1305_open_afternm","_crypto_box_curve25519xsalsa20poly1305_publickeybytes","_crypto_box_curve25519xsalsa20poly1305_secretkeybytes","_crypto_box_curve25519xsalsa20poly1305_seed_keypair","_crypto_box_curve25519xsalsa20poly1305_seedbytes","_crypto_box_curve25519xsalsa20poly1305_zerobytes","_crypto_box_detached","_crypto_box_detached_afternm","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_macbytes","_crypto_box_noncebytes","_crypto_box_open","_crypto_box_open_afternm","_crypto_box_open_detached","_crypto_box_open_detached_afternm","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_primitive","_crypto_box_publickeybytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_sealbytes","_crypto_box_secretkeybytes","_crypto_box_seed_keypair","_crypto_box_seedbytes","_crypto_box_zerobytes","_crypto_core_hchacha20","_crypto_core_hchacha20_constbytes","_crypto_core_hchacha20_inputbytes","_crypto_core_hchacha20_keybytes","_crypto_core_hchacha20_outputbytes","_crypto_core_hsalsa20","_crypto_core_hsalsa20_constbytes","_crypto_core_hsalsa20_inputbytes","_crypto_core_hsalsa20_keybytes","_crypto_core_hsalsa20_outputbytes","_crypto_core_salsa20","_crypto_core_salsa2012","_crypto_core_salsa2012_constbytes","_crypto_core_salsa2012_inputbytes","_crypto_core_salsa2012_keybytes","_crypto_core_salsa2012_outputbytes","_crypto_core_salsa208","_crypto_core_salsa208_constbytes","_crypto_core_salsa208_inputbytes","_crypto_core_salsa208_keybytes","_crypto_core_salsa208_outputbytes","_crypto_core_salsa20_constbytes","_crypto_core_salsa20_inputbytes","_crypto_core_salsa20_keybytes","_crypto_core_salsa20_outputbytes","_crypto_generichash","_crypto_generichash_blake2b","_crypto_generichash_blake2b_bytes","_crypto_generichash_blake2b_bytes_max","_crypto_generichash_blake2b_bytes_min","_crypto_generichash_blake2b_final","_crypto_generichash_blake2b_init","_crypto_generichash_blake2b_init_salt_personal","_crypto_generichash_blake2b_keybytes","_crypto_generichash_blake2b_keybytes_max","_crypto_generichash_blake2b_keybytes_min","_crypto_generichash_blake2b_keygen","_crypto_generichash_blake2b_personalbytes","_crypto_generichash_blake2b_salt_personal","_crypto_generichash_blake2b_saltbytes","_crypto_generichash_blake2b_statebytes","_crypto_generichash_blake2b_update","_crypto_generichash_bytes","_crypto_generichash_bytes_max","_crypto_generichash_bytes_min","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keybytes_max","_crypto_generichash_keybytes_min","_crypto_generichash_keygen","_crypto_generichash_primitive","_crypto_generichash_statebytes","_crypto_generichash_update","_crypto_hash","_crypto_hash_bytes","_crypto_hash_primitive","_crypto_hash_sha256","_crypto_hash_sha256_bytes","_crypto_hash_sha256_final","_crypto_hash_sha256_init","_crypto_hash_sha256_statebytes","_crypto_hash_sha256_update","_crypto_hash_sha512","_crypto_hash_sha512_bytes","_crypto_hash_sha512_final","_crypto_hash_sha512_init","_crypto_hash_sha512_statebytes","_crypto_hash_sha512_update","_crypto_kdf_blake2b_bytes_max","_crypto_kdf_blake2b_bytes_min","_crypto_kdf_blake2b_contextbytes","_crypto_kdf_blake2b_derive_from_key","_crypto_kdf_blake2b_keybytes","_crypto_kdf_bytes_max","_crypto_kdf_bytes_min","_crypto_kdf_contextbytes","_crypto_kdf_derive_from_key","_crypto_kdf_keybytes","_crypto_kdf_keygen","_crypto_kdf_primitive","_crypto_kx_client_session_keys","_crypto_kx_keypair","_crypto_kx_primitive","_crypto_kx_publickeybytes","_crypto_kx_secretkeybytes","_crypto_kx_seed_keypair","_crypto_kx_seedbytes","_crypto_kx_server_session_keys","_crypto_kx_sessionkeybytes","_crypto_onetimeauth","_crypto_onetimeauth_bytes","_crypto_onetimeauth_final","_crypto_onetimeauth_init","_crypto_onetimeauth_keybytes","_crypto_onetimeauth_keygen","_crypto_onetimeauth_poly1305","_crypto_onetimeauth_poly1305_bytes","_crypto_onetimeauth_poly1305_final","_crypto_onetimeauth_poly1305_init","_crypto_onetimeauth_poly1305_keybytes","_crypto_onetimeauth_poly1305_keygen","_crypto_onetimeauth_poly1305_statebytes","_crypto_onetimeauth_poly1305_update","_crypto_onetimeauth_poly1305_verify","_crypto_onetimeauth_primitive","_crypto_onetimeauth_statebytes","_crypto_onetimeauth_update","_crypto_onetimeauth_verify","_crypto_pwhash","_crypto_pwhash_alg_argon2i13","_crypto_pwhash_alg_argon2id13","_crypto_pwhash_alg_default","_crypto_pwhash_argon2i","_crypto_pwhash_argon2i_alg_argon2i13","_crypto_pwhash_argon2i_bytes_max","_crypto_pwhash_argon2i_bytes_min","_crypto_pwhash_argon2i_memlimit_interactive","_crypto_pwhash_argon2i_memlimit_max","_crypto_pwhash_argon2i_memlimit_min","_crypto_pwhash_argon2i_memlimit_moderate","_crypto_pwhash_argon2i_memlimit_sensitive","_crypto_pwhash_argon2i_opslimit_interactive","_crypto_pwhash_argon2i_opslimit_max","_crypto_pwhash_argon2i_opslimit_min","_crypto_pwhash_argon2i_opslimit_moderate","_crypto_pwhash_argon2i_opslimit_sensitive","_crypto_pwhash_argon2i_passwd_max","_crypto_pwhash_argon2i_passwd_min","_crypto_pwhash_argon2i_saltbytes","_crypto_pwhash_argon2i_str","_crypto_pwhash_argon2i_str_needs_rehash","_crypto_pwhash_argon2i_str_verify","_crypto_pwhash_argon2i_strbytes","_crypto_pwhash_argon2i_strprefix","_crypto_pwhash_argon2id","_crypto_pwhash_argon2id_alg_argon2id13","_crypto_pwhash_argon2id_bytes_max","_crypto_pwhash_argon2id_bytes_min","_crypto_pwhash_argon2id_memlimit_interactive","_crypto_pwhash_argon2id_memlimit_max","_crypto_pwhash_argon2id_memlimit_min","_crypto_pwhash_argon2id_memlimit_moderate","_crypto_pwhash_argon2id_memlimit_sensitive","_crypto_pwhash_argon2id_opslimit_interactive","_crypto_pwhash_argon2id_opslimit_max","_crypto_pwhash_argon2id_opslimit_min","_crypto_pwhash_argon2id_opslimit_moderate","_crypto_pwhash_argon2id_opslimit_sensitive","_crypto_pwhash_argon2id_passwd_max","_crypto_pwhash_argon2id_passwd_min","_crypto_pwhash_argon2id_saltbytes","_crypto_pwhash_argon2id_str","_crypto_pwhash_argon2id_str_needs_rehash","_crypto_pwhash_argon2id_str_verify","_crypto_pwhash_argon2id_strbytes","_crypto_pwhash_argon2id_strprefix","_crypto_pwhash_bytes_max","_crypto_pwhash_bytes_min","_crypto_pwhash_memlimit_interactive","_crypto_pwhash_memlimit_max","_crypto_pwhash_memlimit_min","_crypto_pwhash_memlimit_moderate","_crypto_pwhash_memlimit_sensitive","_crypto_pwhash_opslimit_interactive","_crypto_pwhash_opslimit_max","_crypto_pwhash_opslimit_min","_crypto_pwhash_opslimit_moderate","_crypto_pwhash_opslimit_sensitive","_crypto_pwhash_passwd_max","_crypto_pwhash_passwd_min","_crypto_pwhash_primitive","_crypto_pwhash_saltbytes","_crypto_pwhash_scryptsalsa208sha256","_crypto_pwhash_scryptsalsa208sha256_bytes_max","_crypto_pwhash_scryptsalsa208sha256_bytes_min","_crypto_pwhash_scryptsalsa208sha256_ll","_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive","_crypto_pwhash_scryptsalsa208sha256_memlimit_max","_crypto_pwhash_scryptsalsa208sha256_memlimit_min","_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive","_crypto_pwhash_scryptsalsa208sha256_opslimit_max","_crypto_pwhash_scryptsalsa208sha256_opslimit_min","_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_passwd_max","_crypto_pwhash_scryptsalsa208sha256_passwd_min","_crypto_pwhash_scryptsalsa208sha256_saltbytes","_crypto_pwhash_scryptsalsa208sha256_str","_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash","_crypto_pwhash_scryptsalsa208sha256_str_verify","_crypto_pwhash_scryptsalsa208sha256_strbytes","_crypto_pwhash_scryptsalsa208sha256_strprefix","_crypto_pwhash_str","_crypto_pwhash_str_alg","_crypto_pwhash_str_needs_rehash","_crypto_pwhash_str_verify","_crypto_pwhash_strbytes","_crypto_pwhash_strprefix","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_bytes","_crypto_scalarmult_curve25519","_crypto_scalarmult_curve25519_base","_crypto_scalarmult_curve25519_bytes","_crypto_scalarmult_curve25519_scalarbytes","_crypto_scalarmult_primitive","_crypto_scalarmult_scalarbytes","_crypto_secretbox","_crypto_secretbox_boxzerobytes","_crypto_secretbox_detached","_crypto_secretbox_easy","_crypto_secretbox_keybytes","_crypto_secretbox_keygen","_crypto_secretbox_macbytes","_crypto_secretbox_noncebytes","_crypto_secretbox_open","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_secretbox_primitive","_crypto_secretbox_xchacha20poly1305_detached","_crypto_secretbox_xchacha20poly1305_easy","_crypto_secretbox_xchacha20poly1305_keybytes","_crypto_secretbox_xchacha20poly1305_macbytes","_crypto_secretbox_xchacha20poly1305_noncebytes","_crypto_secretbox_xchacha20poly1305_open_detached","_crypto_secretbox_xchacha20poly1305_open_easy","_crypto_secretbox_xsalsa20poly1305","_crypto_secretbox_xsalsa20poly1305_boxzerobytes","_crypto_secretbox_xsalsa20poly1305_keybytes","_crypto_secretbox_xsalsa20poly1305_keygen","_crypto_secretbox_xsalsa20poly1305_macbytes","_crypto_secretbox_xsalsa20poly1305_noncebytes","_crypto_secretbox_xsalsa20poly1305_open","_crypto_secretbox_xsalsa20poly1305_zerobytes","_crypto_secretbox_zerobytes","_crypto_secretstream_xchacha20poly1305_abytes","_crypto_secretstream_xchacha20poly1305_headerbytes","_crypto_secretstream_xchacha20poly1305_init_pull","_crypto_secretstream_xchacha20poly1305_init_push","_crypto_secretstream_xchacha20poly1305_keybytes","_crypto_secretstream_xchacha20poly1305_keygen","_crypto_secretstream_xchacha20poly1305_messagebytes_max","_crypto_secretstream_xchacha20poly1305_pull","_crypto_secretstream_xchacha20poly1305_push","_crypto_secretstream_xchacha20poly1305_rekey","_crypto_secretstream_xchacha20poly1305_statebytes","_crypto_secretstream_xchacha20poly1305_tag_final","_crypto_secretstream_xchacha20poly1305_tag_message","_crypto_secretstream_xchacha20poly1305_tag_push","_crypto_secretstream_xchacha20poly1305_tag_rekey","_crypto_shorthash","_crypto_shorthash_bytes","_crypto_shorthash_keybytes","_crypto_shorthash_keygen","_crypto_shorthash_primitive","_crypto_shorthash_siphash24","_crypto_shorthash_siphash24_bytes","_crypto_shorthash_siphash24_keybytes","_crypto_shorthash_siphashx24","_crypto_shorthash_siphashx24_bytes","_crypto_shorthash_siphashx24_keybytes","_crypto_sign","_crypto_sign_bytes","_crypto_sign_detached","_crypto_sign_ed25519","_crypto_sign_ed25519_bytes","_crypto_sign_ed25519_detached","_crypto_sign_ed25519_keypair","_crypto_sign_ed25519_open","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_publickeybytes","_crypto_sign_ed25519_secretkeybytes","_crypto_sign_ed25519_seed_keypair","_crypto_sign_ed25519_seedbytes","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_ed25519_sk_to_pk","_crypto_sign_ed25519_sk_to_seed","_crypto_sign_ed25519_verify_detached","_crypto_sign_ed25519ph_final_create","_crypto_sign_ed25519ph_final_verify","_crypto_sign_ed25519ph_init","_crypto_sign_ed25519ph_statebytes","_crypto_sign_ed25519ph_update","_crypto_sign_final_create","_crypto_sign_final_verify","_crypto_sign_init","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_primitive","_crypto_sign_publickeybytes","_crypto_sign_secretkeybytes","_crypto_sign_seed_keypair","_crypto_sign_seedbytes","_crypto_sign_statebytes","_crypto_sign_update","_crypto_sign_verify_detached","_crypto_stream","_crypto_stream_chacha20","_crypto_stream_chacha20_ietf","_crypto_stream_chacha20_ietf_keybytes","_crypto_stream_chacha20_ietf_keygen","_crypto_stream_chacha20_ietf_noncebytes","_crypto_stream_chacha20_ietf_xor","_crypto_stream_chacha20_ietf_xor_ic","_crypto_stream_chacha20_keybytes","_crypto_stream_chacha20_keygen","_crypto_stream_chacha20_noncebytes","_crypto_stream_chacha20_xor","_crypto_stream_chacha20_xor_ic","_crypto_stream_keybytes","_crypto_stream_keygen","_crypto_stream_noncebytes","_crypto_stream_primitive","_crypto_stream_salsa20","_crypto_stream_salsa2012","_crypto_stream_salsa2012_keybytes","_crypto_stream_salsa2012_keygen","_crypto_stream_salsa2012_noncebytes","_crypto_stream_salsa2012_xor","_crypto_stream_salsa208","_crypto_stream_salsa208_keybytes","_crypto_stream_salsa208_keygen","_crypto_stream_salsa208_messagebytes_max","_crypto_stream_salsa208_noncebytes","_crypto_stream_salsa208_xor","_crypto_stream_salsa20_keybytes","_crypto_stream_salsa20_keygen","_crypto_stream_salsa20_noncebytes","_crypto_stream_salsa20_xor","_crypto_stream_salsa20_xor_ic","_crypto_stream_xchacha20","_crypto_stream_xchacha20_keybytes","_crypto_stream_xchacha20_keygen","_crypto_stream_xchacha20_noncebytes","_crypto_stream_xchacha20_xor","_crypto_stream_xchacha20_xor_ic","_crypto_stream_xor","_crypto_stream_xsalsa20","_crypto_stream_xsalsa20_keybytes","_crypto_stream_xsalsa20_keygen","_crypto_stream_xsalsa20_noncebytes","_crypto_stream_xsalsa20_xor","_crypto_stream_xsalsa20_xor_ic","_crypto_verify_16","_crypto_verify_16_bytes","_crypto_verify_32","_crypto_verify_32_bytes","_crypto_verify_64","_crypto_verify_64_bytes","_randombytes","_randombytes_buf","_randombytes_buf_deterministic","_randombytes_close","_randombytes_implementation_name","_randombytes_random","_randombytes_seedbytes","_randombytes_stir","_randombytes_uniform","_sodium_base642bin","_sodium_base64_encoded_len","_sodium_bin2base64","_sodium_bin2hex","_sodium_hex2bin","_sodium_init","_sodium_library_minimal","_sodium_library_version_major","_sodium_library_version_minor","_sodium_pad","_sodium_unpad","_sodium_version_string"]'
export LDFLAGS="-s RESERVED_FUNCTION_POINTERS=8"
export LDFLAGS="${LDFLAGS} -s WASM=1 -s SINGLE_FILE=1"
export LDFLAGS="${LDFLAGS} -s NO_DYNAMIC_EXECUTION=1 -s ASSERTIONS=0"
diff --git a/dist-build/emscripten.sh b/dist-build/emscripten.sh
index a0fd4acd..f387f946 100755
--- a/dist-build/emscripten.sh
+++ b/dist-build/emscripten.sh
@@ -2,7 +2,7 @@
export MAKE_FLAGS='-j4'
export EXPORTED_FUNCTIONS_STANDARD='["_crypto_aead_chacha20poly1305_abytes","_crypto_aead_chacha20poly1305_decrypt","_crypto_aead_chacha20poly1305_decrypt_detached","_crypto_aead_chacha20poly1305_encrypt","_crypto_aead_chacha20poly1305_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_abytes","_crypto_aead_chacha20poly1305_ietf_decrypt","_crypto_aead_chacha20poly1305_ietf_decrypt_detached","_crypto_aead_chacha20poly1305_ietf_encrypt","_crypto_aead_chacha20poly1305_ietf_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_keybytes","_crypto_aead_chacha20poly1305_ietf_keygen","_crypto_aead_chacha20poly1305_ietf_npubbytes","_crypto_aead_chacha20poly1305_ietf_nsecbytes","_crypto_aead_chacha20poly1305_keybytes","_crypto_aead_chacha20poly1305_keygen","_crypto_aead_chacha20poly1305_npubbytes","_crypto_aead_chacha20poly1305_nsecbytes","_crypto_aead_xchacha20poly1305_ietf_abytes","_crypto_aead_xchacha20poly1305_ietf_decrypt","_crypto_aead_xchacha20poly1305_ietf_decrypt_detached","_crypto_aead_xchacha20poly1305_ietf_encrypt","_crypto_aead_xchacha20poly1305_ietf_encrypt_detached","_crypto_aead_xchacha20poly1305_ietf_keybytes","_crypto_aead_xchacha20poly1305_ietf_keygen","_crypto_aead_xchacha20poly1305_ietf_npubbytes","_crypto_aead_xchacha20poly1305_ietf_nsecbytes","_crypto_auth","_crypto_auth_bytes","_crypto_auth_keybytes","_crypto_auth_keygen","_crypto_auth_verify","_crypto_box_beforenm","_crypto_box_beforenmbytes","_crypto_box_detached","_crypto_box_detached_afternm","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_macbytes","_crypto_box_noncebytes","_crypto_box_open_detached","_crypto_box_open_detached_afternm","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_publickeybytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_sealbytes","_crypto_box_secretkeybytes","_crypto_box_seed_keypair","_crypto_box_seedbytes","_crypto_core_hchacha20","_crypto_core_hchacha20_constbytes","_crypto_core_hchacha20_inputbytes","_crypto_core_hchacha20_keybytes","_crypto_core_hchacha20_outputbytes","_crypto_generichash","_crypto_generichash_bytes","_crypto_generichash_bytes_max","_crypto_generichash_bytes_min","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keybytes_max","_crypto_generichash_keybytes_min","_crypto_generichash_keygen","_crypto_generichash_statebytes","_crypto_generichash_update","_crypto_hash","_crypto_hash_bytes","_crypto_kdf_bytes_max","_crypto_kdf_bytes_min","_crypto_kdf_contextbytes","_crypto_kdf_derive_from_key","_crypto_kdf_keybytes","_crypto_kdf_keygen","_crypto_kx_client_session_keys","_crypto_kx_keypair","_crypto_kx_publickeybytes","_crypto_kx_secretkeybytes","_crypto_kx_seed_keypair","_crypto_kx_seedbytes","_crypto_kx_server_session_keys","_crypto_kx_sessionkeybytes","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_bytes","_crypto_scalarmult_scalarbytes","_crypto_secretbox_detached","_crypto_secretbox_easy","_crypto_secretbox_keybytes","_crypto_secretbox_keygen","_crypto_secretbox_macbytes","_crypto_secretbox_noncebytes","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_secretstream_xchacha20poly1305_abytes","_crypto_secretstream_xchacha20poly1305_headerbytes","_crypto_secretstream_xchacha20poly1305_init_pull","_crypto_secretstream_xchacha20poly1305_init_push","_crypto_secretstream_xchacha20poly1305_keybytes","_crypto_secretstream_xchacha20poly1305_keygen","_crypto_secretstream_xchacha20poly1305_messagebytes_max","_crypto_secretstream_xchacha20poly1305_pull","_crypto_secretstream_xchacha20poly1305_push","_crypto_secretstream_xchacha20poly1305_rekey","_crypto_secretstream_xchacha20poly1305_statebytes","_crypto_secretstream_xchacha20poly1305_tag_final","_crypto_secretstream_xchacha20poly1305_tag_message","_crypto_secretstream_xchacha20poly1305_tag_push","_crypto_secretstream_xchacha20poly1305_tag_rekey","_crypto_shorthash","_crypto_shorthash_bytes","_crypto_shorthash_keybytes","_crypto_shorthash_keygen","_crypto_sign","_crypto_sign_bytes","_crypto_sign_detached","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_final_create","_crypto_sign_final_verify","_crypto_sign_init","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_publickeybytes","_crypto_sign_secretkeybytes","_crypto_sign_seed_keypair","_crypto_sign_seedbytes","_crypto_sign_statebytes","_crypto_sign_update","_crypto_sign_verify_detached","_crypto_stream_keygen","_randombytes","_randombytes_buf","_randombytes_buf_deterministic","_randombytes_close","_randombytes_random","_randombytes_seedbytes","_randombytes_stir","_randombytes_uniform","_sodium_base642bin","_sodium_base64_encoded_len","_sodium_bin2base64","_sodium_bin2hex","_sodium_hex2bin","_sodium_init","_sodium_library_minimal","_sodium_library_version_major","_sodium_library_version_minor","_sodium_pad","_sodium_unpad","_sodium_version_string"]'
-export EXPORTED_FUNCTIONS_SUMO='["_crypto_aead_chacha20poly1305_abytes","_crypto_aead_chacha20poly1305_decrypt","_crypto_aead_chacha20poly1305_decrypt_detached","_crypto_aead_chacha20poly1305_encrypt","_crypto_aead_chacha20poly1305_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_abytes","_crypto_aead_chacha20poly1305_ietf_decrypt","_crypto_aead_chacha20poly1305_ietf_decrypt_detached","_crypto_aead_chacha20poly1305_ietf_encrypt","_crypto_aead_chacha20poly1305_ietf_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_keybytes","_crypto_aead_chacha20poly1305_ietf_keygen","_crypto_aead_chacha20poly1305_ietf_npubbytes","_crypto_aead_chacha20poly1305_ietf_nsecbytes","_crypto_aead_chacha20poly1305_keybytes","_crypto_aead_chacha20poly1305_keygen","_crypto_aead_chacha20poly1305_npubbytes","_crypto_aead_chacha20poly1305_nsecbytes","_crypto_aead_xchacha20poly1305_ietf_abytes","_crypto_aead_xchacha20poly1305_ietf_decrypt","_crypto_aead_xchacha20poly1305_ietf_decrypt_detached","_crypto_aead_xchacha20poly1305_ietf_encrypt","_crypto_aead_xchacha20poly1305_ietf_encrypt_detached","_crypto_aead_xchacha20poly1305_ietf_keybytes","_crypto_aead_xchacha20poly1305_ietf_keygen","_crypto_aead_xchacha20poly1305_ietf_npubbytes","_crypto_aead_xchacha20poly1305_ietf_nsecbytes","_crypto_auth","_crypto_auth_bytes","_crypto_auth_hmacsha256","_crypto_auth_hmacsha256_bytes","_crypto_auth_hmacsha256_final","_crypto_auth_hmacsha256_init","_crypto_auth_hmacsha256_keybytes","_crypto_auth_hmacsha256_keygen","_crypto_auth_hmacsha256_statebytes","_crypto_auth_hmacsha256_update","_crypto_auth_hmacsha256_verify","_crypto_auth_hmacsha512","_crypto_auth_hmacsha512256","_crypto_auth_hmacsha512256_bytes","_crypto_auth_hmacsha512256_final","_crypto_auth_hmacsha512256_init","_crypto_auth_hmacsha512256_keybytes","_crypto_auth_hmacsha512256_keygen","_crypto_auth_hmacsha512256_statebytes","_crypto_auth_hmacsha512256_update","_crypto_auth_hmacsha512256_verify","_crypto_auth_hmacsha512_bytes","_crypto_auth_hmacsha512_final","_crypto_auth_hmacsha512_init","_crypto_auth_hmacsha512_keybytes","_crypto_auth_hmacsha512_keygen","_crypto_auth_hmacsha512_statebytes","_crypto_auth_hmacsha512_update","_crypto_auth_hmacsha512_verify","_crypto_auth_keybytes","_crypto_auth_keygen","_crypto_auth_primitive","_crypto_auth_verify","_crypto_box","_crypto_box_afternm","_crypto_box_beforenm","_crypto_box_beforenmbytes","_crypto_box_boxzerobytes","_crypto_box_curve25519xchacha20poly1305_beforenm","_crypto_box_curve25519xchacha20poly1305_beforenmbytes","_crypto_box_curve25519xchacha20poly1305_detached","_crypto_box_curve25519xchacha20poly1305_detached_afternm","_crypto_box_curve25519xchacha20poly1305_easy","_crypto_box_curve25519xchacha20poly1305_easy_afternm","_crypto_box_curve25519xchacha20poly1305_keypair","_crypto_box_curve25519xchacha20poly1305_macbytes","_crypto_box_curve25519xchacha20poly1305_noncebytes","_crypto_box_curve25519xchacha20poly1305_open_detached","_crypto_box_curve25519xchacha20poly1305_open_detached_afternm","_crypto_box_curve25519xchacha20poly1305_open_easy","_crypto_box_curve25519xchacha20poly1305_open_easy_afternm","_crypto_box_curve25519xchacha20poly1305_publickeybytes","_crypto_box_curve25519xchacha20poly1305_seal","_crypto_box_curve25519xchacha20poly1305_seal_open","_crypto_box_curve25519xchacha20poly1305_sealbytes","_crypto_box_curve25519xchacha20poly1305_secretkeybytes","_crypto_box_curve25519xchacha20poly1305_seed_keypair","_crypto_box_curve25519xchacha20poly1305_seedbytes","_crypto_box_curve25519xsalsa20poly1305","_crypto_box_curve25519xsalsa20poly1305_afternm","_crypto_box_curve25519xsalsa20poly1305_beforenm","_crypto_box_curve25519xsalsa20poly1305_beforenmbytes","_crypto_box_curve25519xsalsa20poly1305_boxzerobytes","_crypto_box_curve25519xsalsa20poly1305_keypair","_crypto_box_curve25519xsalsa20poly1305_macbytes","_crypto_box_curve25519xsalsa20poly1305_noncebytes","_crypto_box_curve25519xsalsa20poly1305_open","_crypto_box_curve25519xsalsa20poly1305_open_afternm","_crypto_box_curve25519xsalsa20poly1305_publickeybytes","_crypto_box_curve25519xsalsa20poly1305_secretkeybytes","_crypto_box_curve25519xsalsa20poly1305_seed_keypair","_crypto_box_curve25519xsalsa20poly1305_seedbytes","_crypto_box_curve25519xsalsa20poly1305_zerobytes","_crypto_box_detached","_crypto_box_detached_afternm","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_macbytes","_crypto_box_noncebytes","_crypto_box_open","_crypto_box_open_afternm","_crypto_box_open_detached","_crypto_box_open_detached_afternm","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_primitive","_crypto_box_publickeybytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_sealbytes","_crypto_box_secretkeybytes","_crypto_box_seed_keypair","_crypto_box_seedbytes","_crypto_box_zerobytes","_crypto_core_hchacha20","_crypto_core_hchacha20_constbytes","_crypto_core_hchacha20_inputbytes","_crypto_core_hchacha20_keybytes","_crypto_core_hchacha20_outputbytes","_crypto_core_hsalsa20","_crypto_core_hsalsa20_constbytes","_crypto_core_hsalsa20_inputbytes","_crypto_core_hsalsa20_keybytes","_crypto_core_hsalsa20_outputbytes","_crypto_core_salsa20","_crypto_core_salsa2012","_crypto_core_salsa2012_constbytes","_crypto_core_salsa2012_inputbytes","_crypto_core_salsa2012_keybytes","_crypto_core_salsa2012_outputbytes","_crypto_core_salsa208","_crypto_core_salsa208_constbytes","_crypto_core_salsa208_inputbytes","_crypto_core_salsa208_keybytes","_crypto_core_salsa208_outputbytes","_crypto_core_salsa20_constbytes","_crypto_core_salsa20_inputbytes","_crypto_core_salsa20_keybytes","_crypto_core_salsa20_outputbytes","_crypto_generichash","_crypto_generichash_blake2b","_crypto_generichash_blake2b_bytes","_crypto_generichash_blake2b_bytes_max","_crypto_generichash_blake2b_bytes_min","_crypto_generichash_blake2b_final","_crypto_generichash_blake2b_init","_crypto_generichash_blake2b_init_salt_personal","_crypto_generichash_blake2b_keybytes","_crypto_generichash_blake2b_keybytes_max","_crypto_generichash_blake2b_keybytes_min","_crypto_generichash_blake2b_keygen","_crypto_generichash_blake2b_personalbytes","_crypto_generichash_blake2b_salt_personal","_crypto_generichash_blake2b_saltbytes","_crypto_generichash_blake2b_statebytes","_crypto_generichash_blake2b_update","_crypto_generichash_bytes","_crypto_generichash_bytes_max","_crypto_generichash_bytes_min","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keybytes_max","_crypto_generichash_keybytes_min","_crypto_generichash_keygen","_crypto_generichash_primitive","_crypto_generichash_statebytes","_crypto_generichash_update","_crypto_hash","_crypto_hash_bytes","_crypto_hash_primitive","_crypto_hash_sha256","_crypto_hash_sha256_bytes","_crypto_hash_sha256_final","_crypto_hash_sha256_init","_crypto_hash_sha256_statebytes","_crypto_hash_sha256_update","_crypto_hash_sha512","_crypto_hash_sha512_bytes","_crypto_hash_sha512_final","_crypto_hash_sha512_init","_crypto_hash_sha512_statebytes","_crypto_hash_sha512_update","_crypto_kdf_blake2b_bytes_max","_crypto_kdf_blake2b_bytes_min","_crypto_kdf_blake2b_contextbytes","_crypto_kdf_blake2b_derive_from_key","_crypto_kdf_blake2b_keybytes","_crypto_kdf_bytes_max","_crypto_kdf_bytes_min","_crypto_kdf_contextbytes","_crypto_kdf_derive_from_key","_crypto_kdf_keybytes","_crypto_kdf_keygen","_crypto_kdf_primitive","_crypto_kx_client_session_keys","_crypto_kx_keypair","_crypto_kx_primitive","_crypto_kx_publickeybytes","_crypto_kx_secretkeybytes","_crypto_kx_seed_keypair","_crypto_kx_seedbytes","_crypto_kx_server_session_keys","_crypto_kx_sessionkeybytes","_crypto_onetimeauth","_crypto_onetimeauth_bytes","_crypto_onetimeauth_final","_crypto_onetimeauth_init","_crypto_onetimeauth_keybytes","_crypto_onetimeauth_keygen","_crypto_onetimeauth_poly1305","_crypto_onetimeauth_poly1305_bytes","_crypto_onetimeauth_poly1305_final","_crypto_onetimeauth_poly1305_init","_crypto_onetimeauth_poly1305_keybytes","_crypto_onetimeauth_poly1305_keygen","_crypto_onetimeauth_poly1305_statebytes","_crypto_onetimeauth_poly1305_update","_crypto_onetimeauth_poly1305_verify","_crypto_onetimeauth_primitive","_crypto_onetimeauth_statebytes","_crypto_onetimeauth_update","_crypto_onetimeauth_verify","_crypto_pwhash","_crypto_pwhash_alg_argon2i13","_crypto_pwhash_alg_argon2id13","_crypto_pwhash_alg_default","_crypto_pwhash_argon2i","_crypto_pwhash_argon2i_alg_argon2i13","_crypto_pwhash_argon2i_bytes_max","_crypto_pwhash_argon2i_bytes_min","_crypto_pwhash_argon2i_memlimit_interactive","_crypto_pwhash_argon2i_memlimit_max","_crypto_pwhash_argon2i_memlimit_min","_crypto_pwhash_argon2i_memlimit_moderate","_crypto_pwhash_argon2i_memlimit_sensitive","_crypto_pwhash_argon2i_opslimit_interactive","_crypto_pwhash_argon2i_opslimit_max","_crypto_pwhash_argon2i_opslimit_min","_crypto_pwhash_argon2i_opslimit_moderate","_crypto_pwhash_argon2i_opslimit_sensitive","_crypto_pwhash_argon2i_passwd_max","_crypto_pwhash_argon2i_passwd_min","_crypto_pwhash_argon2i_saltbytes","_crypto_pwhash_argon2i_str","_crypto_pwhash_argon2i_str_needs_rehash","_crypto_pwhash_argon2i_str_verify","_crypto_pwhash_argon2i_strbytes","_crypto_pwhash_argon2i_strprefix","_crypto_pwhash_argon2id","_crypto_pwhash_argon2id_alg_argon2id13","_crypto_pwhash_argon2id_bytes_max","_crypto_pwhash_argon2id_bytes_min","_crypto_pwhash_argon2id_memlimit_interactive","_crypto_pwhash_argon2id_memlimit_max","_crypto_pwhash_argon2id_memlimit_min","_crypto_pwhash_argon2id_memlimit_moderate","_crypto_pwhash_argon2id_memlimit_sensitive","_crypto_pwhash_argon2id_opslimit_interactive","_crypto_pwhash_argon2id_opslimit_max","_crypto_pwhash_argon2id_opslimit_min","_crypto_pwhash_argon2id_opslimit_moderate","_crypto_pwhash_argon2id_opslimit_sensitive","_crypto_pwhash_argon2id_passwd_max","_crypto_pwhash_argon2id_passwd_min","_crypto_pwhash_argon2id_saltbytes","_crypto_pwhash_argon2id_str","_crypto_pwhash_argon2id_str_needs_rehash","_crypto_pwhash_argon2id_str_verify","_crypto_pwhash_argon2id_strbytes","_crypto_pwhash_argon2id_strprefix","_crypto_pwhash_bytes_max","_crypto_pwhash_bytes_min","_crypto_pwhash_memlimit_interactive","_crypto_pwhash_memlimit_max","_crypto_pwhash_memlimit_min","_crypto_pwhash_memlimit_moderate","_crypto_pwhash_memlimit_sensitive","_crypto_pwhash_opslimit_interactive","_crypto_pwhash_opslimit_max","_crypto_pwhash_opslimit_min","_crypto_pwhash_opslimit_moderate","_crypto_pwhash_opslimit_sensitive","_crypto_pwhash_passwd_max","_crypto_pwhash_passwd_min","_crypto_pwhash_primitive","_crypto_pwhash_saltbytes","_crypto_pwhash_scryptsalsa208sha256","_crypto_pwhash_scryptsalsa208sha256_bytes_max","_crypto_pwhash_scryptsalsa208sha256_bytes_min","_crypto_pwhash_scryptsalsa208sha256_ll","_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive","_crypto_pwhash_scryptsalsa208sha256_memlimit_max","_crypto_pwhash_scryptsalsa208sha256_memlimit_min","_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive","_crypto_pwhash_scryptsalsa208sha256_opslimit_max","_crypto_pwhash_scryptsalsa208sha256_opslimit_min","_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_passwd_max","_crypto_pwhash_scryptsalsa208sha256_passwd_min","_crypto_pwhash_scryptsalsa208sha256_saltbytes","_crypto_pwhash_scryptsalsa208sha256_str","_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash","_crypto_pwhash_scryptsalsa208sha256_str_verify","_crypto_pwhash_scryptsalsa208sha256_strbytes","_crypto_pwhash_scryptsalsa208sha256_strprefix","_crypto_pwhash_str","_crypto_pwhash_str_alg","_crypto_pwhash_str_needs_rehash","_crypto_pwhash_str_verify","_crypto_pwhash_strbytes","_crypto_pwhash_strprefix","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_bytes","_crypto_scalarmult_curve25519","_crypto_scalarmult_curve25519_base","_crypto_scalarmult_curve25519_bytes","_crypto_scalarmult_curve25519_scalarbytes","_crypto_scalarmult_primitive","_crypto_scalarmult_scalarbytes","_crypto_secretbox","_crypto_secretbox_boxzerobytes","_crypto_secretbox_detached","_crypto_secretbox_easy","_crypto_secretbox_keybytes","_crypto_secretbox_keygen","_crypto_secretbox_macbytes","_crypto_secretbox_noncebytes","_crypto_secretbox_open","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_secretbox_primitive","_crypto_secretbox_xchacha20poly1305_detached","_crypto_secretbox_xchacha20poly1305_easy","_crypto_secretbox_xchacha20poly1305_keybytes","_crypto_secretbox_xchacha20poly1305_macbytes","_crypto_secretbox_xchacha20poly1305_noncebytes","_crypto_secretbox_xchacha20poly1305_open_detached","_crypto_secretbox_xchacha20poly1305_open_easy","_crypto_secretbox_xsalsa20poly1305","_crypto_secretbox_xsalsa20poly1305_boxzerobytes","_crypto_secretbox_xsalsa20poly1305_keybytes","_crypto_secretbox_xsalsa20poly1305_keygen","_crypto_secretbox_xsalsa20poly1305_macbytes","_crypto_secretbox_xsalsa20poly1305_noncebytes","_crypto_secretbox_xsalsa20poly1305_open","_crypto_secretbox_xsalsa20poly1305_zerobytes","_crypto_secretbox_zerobytes","_crypto_secretstream_xchacha20poly1305_abytes","_crypto_secretstream_xchacha20poly1305_headerbytes","_crypto_secretstream_xchacha20poly1305_init_pull","_crypto_secretstream_xchacha20poly1305_init_push","_crypto_secretstream_xchacha20poly1305_keybytes","_crypto_secretstream_xchacha20poly1305_keygen","_crypto_secretstream_xchacha20poly1305_messagebytes_max","_crypto_secretstream_xchacha20poly1305_pull","_crypto_secretstream_xchacha20poly1305_push","_crypto_secretstream_xchacha20poly1305_rekey","_crypto_secretstream_xchacha20poly1305_statebytes","_crypto_secretstream_xchacha20poly1305_tag_final","_crypto_secretstream_xchacha20poly1305_tag_message","_crypto_secretstream_xchacha20poly1305_tag_push","_crypto_secretstream_xchacha20poly1305_tag_rekey","_crypto_shorthash","_crypto_shorthash_bytes","_crypto_shorthash_keybytes","_crypto_shorthash_keygen","_crypto_shorthash_primitive","_crypto_shorthash_siphash24","_crypto_shorthash_siphash24_bytes","_crypto_shorthash_siphash24_keybytes","_crypto_shorthash_siphashx24","_crypto_shorthash_siphashx24_bytes","_crypto_shorthash_siphashx24_keybytes","_crypto_sign","_crypto_sign_bytes","_crypto_sign_detached","_crypto_sign_ed25519","_crypto_sign_ed25519_bytes","_crypto_sign_ed25519_detached","_crypto_sign_ed25519_keypair","_crypto_sign_ed25519_open","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_publickeybytes","_crypto_sign_ed25519_secretkeybytes","_crypto_sign_ed25519_seed_keypair","_crypto_sign_ed25519_seedbytes","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_ed25519_sk_to_pk","_crypto_sign_ed25519_sk_to_seed","_crypto_sign_ed25519_verify_detached","_crypto_sign_ed25519ph_final_create","_crypto_sign_ed25519ph_final_verify","_crypto_sign_ed25519ph_init","_crypto_sign_ed25519ph_statebytes","_crypto_sign_ed25519ph_update","_crypto_sign_final_create","_crypto_sign_final_verify","_crypto_sign_init","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_primitive","_crypto_sign_publickeybytes","_crypto_sign_secretkeybytes","_crypto_sign_seed_keypair","_crypto_sign_seedbytes","_crypto_sign_statebytes","_crypto_sign_update","_crypto_sign_verify_detached","_crypto_stream","_crypto_stream_aes128ctr","_crypto_stream_aes128ctr_afternm","_crypto_stream_aes128ctr_beforenm","_crypto_stream_aes128ctr_beforenmbytes","_crypto_stream_aes128ctr_keybytes","_crypto_stream_aes128ctr_noncebytes","_crypto_stream_aes128ctr_xor","_crypto_stream_aes128ctr_xor_afternm","_crypto_stream_chacha20","_crypto_stream_chacha20_ietf","_crypto_stream_chacha20_ietf_keybytes","_crypto_stream_chacha20_ietf_keygen","_crypto_stream_chacha20_ietf_noncebytes","_crypto_stream_chacha20_ietf_xor","_crypto_stream_chacha20_ietf_xor_ic","_crypto_stream_chacha20_keybytes","_crypto_stream_chacha20_keygen","_crypto_stream_chacha20_noncebytes","_crypto_stream_chacha20_xor","_crypto_stream_chacha20_xor_ic","_crypto_stream_keybytes","_crypto_stream_keygen","_crypto_stream_noncebytes","_crypto_stream_primitive","_crypto_stream_salsa20","_crypto_stream_salsa2012","_crypto_stream_salsa2012_keybytes","_crypto_stream_salsa2012_keygen","_crypto_stream_salsa2012_noncebytes","_crypto_stream_salsa2012_xor","_crypto_stream_salsa208","_crypto_stream_salsa208_keybytes","_crypto_stream_salsa208_keygen","_crypto_stream_salsa208_messagebytes_max","_crypto_stream_salsa208_noncebytes","_crypto_stream_salsa208_xor","_crypto_stream_salsa20_keybytes","_crypto_stream_salsa20_keygen","_crypto_stream_salsa20_noncebytes","_crypto_stream_salsa20_xor","_crypto_stream_salsa20_xor_ic","_crypto_stream_xchacha20","_crypto_stream_xchacha20_keybytes","_crypto_stream_xchacha20_keygen","_crypto_stream_xchacha20_noncebytes","_crypto_stream_xchacha20_xor","_crypto_stream_xchacha20_xor_ic","_crypto_stream_xor","_crypto_stream_xsalsa20","_crypto_stream_xsalsa20_keybytes","_crypto_stream_xsalsa20_keygen","_crypto_stream_xsalsa20_noncebytes","_crypto_stream_xsalsa20_xor","_crypto_stream_xsalsa20_xor_ic","_crypto_verify_16","_crypto_verify_16_bytes","_crypto_verify_32","_crypto_verify_32_bytes","_crypto_verify_64","_crypto_verify_64_bytes","_randombytes","_randombytes_buf","_randombytes_buf_deterministic","_randombytes_close","_randombytes_implementation_name","_randombytes_random","_randombytes_seedbytes","_randombytes_stir","_randombytes_uniform","_sodium_base642bin","_sodium_base64_encoded_len","_sodium_bin2base64","_sodium_bin2hex","_sodium_hex2bin","_sodium_init","_sodium_library_minimal","_sodium_library_version_major","_sodium_library_version_minor","_sodium_pad","_sodium_unpad","_sodium_version_string"]'
+export EXPORTED_FUNCTIONS_SUMO='["_crypto_aead_chacha20poly1305_abytes","_crypto_aead_chacha20poly1305_decrypt","_crypto_aead_chacha20poly1305_decrypt_detached","_crypto_aead_chacha20poly1305_encrypt","_crypto_aead_chacha20poly1305_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_abytes","_crypto_aead_chacha20poly1305_ietf_decrypt","_crypto_aead_chacha20poly1305_ietf_decrypt_detached","_crypto_aead_chacha20poly1305_ietf_encrypt","_crypto_aead_chacha20poly1305_ietf_encrypt_detached","_crypto_aead_chacha20poly1305_ietf_keybytes","_crypto_aead_chacha20poly1305_ietf_keygen","_crypto_aead_chacha20poly1305_ietf_npubbytes","_crypto_aead_chacha20poly1305_ietf_nsecbytes","_crypto_aead_chacha20poly1305_keybytes","_crypto_aead_chacha20poly1305_keygen","_crypto_aead_chacha20poly1305_npubbytes","_crypto_aead_chacha20poly1305_nsecbytes","_crypto_aead_xchacha20poly1305_ietf_abytes","_crypto_aead_xchacha20poly1305_ietf_decrypt","_crypto_aead_xchacha20poly1305_ietf_decrypt_detached","_crypto_aead_xchacha20poly1305_ietf_encrypt","_crypto_aead_xchacha20poly1305_ietf_encrypt_detached","_crypto_aead_xchacha20poly1305_ietf_keybytes","_crypto_aead_xchacha20poly1305_ietf_keygen","_crypto_aead_xchacha20poly1305_ietf_npubbytes","_crypto_aead_xchacha20poly1305_ietf_nsecbytes","_crypto_auth","_crypto_auth_bytes","_crypto_auth_hmacsha256","_crypto_auth_hmacsha256_bytes","_crypto_auth_hmacsha256_final","_crypto_auth_hmacsha256_init","_crypto_auth_hmacsha256_keybytes","_crypto_auth_hmacsha256_keygen","_crypto_auth_hmacsha256_statebytes","_crypto_auth_hmacsha256_update","_crypto_auth_hmacsha256_verify","_crypto_auth_hmacsha512","_crypto_auth_hmacsha512256","_crypto_auth_hmacsha512256_bytes","_crypto_auth_hmacsha512256_final","_crypto_auth_hmacsha512256_init","_crypto_auth_hmacsha512256_keybytes","_crypto_auth_hmacsha512256_keygen","_crypto_auth_hmacsha512256_statebytes","_crypto_auth_hmacsha512256_update","_crypto_auth_hmacsha512256_verify","_crypto_auth_hmacsha512_bytes","_crypto_auth_hmacsha512_final","_crypto_auth_hmacsha512_init","_crypto_auth_hmacsha512_keybytes","_crypto_auth_hmacsha512_keygen","_crypto_auth_hmacsha512_statebytes","_crypto_auth_hmacsha512_update","_crypto_auth_hmacsha512_verify","_crypto_auth_keybytes","_crypto_auth_keygen","_crypto_auth_primitive","_crypto_auth_verify","_crypto_box","_crypto_box_afternm","_crypto_box_beforenm","_crypto_box_beforenmbytes","_crypto_box_boxzerobytes","_crypto_box_curve25519xchacha20poly1305_beforenm","_crypto_box_curve25519xchacha20poly1305_beforenmbytes","_crypto_box_curve25519xchacha20poly1305_detached","_crypto_box_curve25519xchacha20poly1305_detached_afternm","_crypto_box_curve25519xchacha20poly1305_easy","_crypto_box_curve25519xchacha20poly1305_easy_afternm","_crypto_box_curve25519xchacha20poly1305_keypair","_crypto_box_curve25519xchacha20poly1305_macbytes","_crypto_box_curve25519xchacha20poly1305_noncebytes","_crypto_box_curve25519xchacha20poly1305_open_detached","_crypto_box_curve25519xchacha20poly1305_open_detached_afternm","_crypto_box_curve25519xchacha20poly1305_open_easy","_crypto_box_curve25519xchacha20poly1305_open_easy_afternm","_crypto_box_curve25519xchacha20poly1305_publickeybytes","_crypto_box_curve25519xchacha20poly1305_seal","_crypto_box_curve25519xchacha20poly1305_seal_open","_crypto_box_curve25519xchacha20poly1305_sealbytes","_crypto_box_curve25519xchacha20poly1305_secretkeybytes","_crypto_box_curve25519xchacha20poly1305_seed_keypair","_crypto_box_curve25519xchacha20poly1305_seedbytes","_crypto_box_curve25519xsalsa20poly1305","_crypto_box_curve25519xsalsa20poly1305_afternm","_crypto_box_curve25519xsalsa20poly1305_beforenm","_crypto_box_curve25519xsalsa20poly1305_beforenmbytes","_crypto_box_curve25519xsalsa20poly1305_boxzerobytes","_crypto_box_curve25519xsalsa20poly1305_keypair","_crypto_box_curve25519xsalsa20poly1305_macbytes","_crypto_box_curve25519xsalsa20poly1305_noncebytes","_crypto_box_curve25519xsalsa20poly1305_open","_crypto_box_curve25519xsalsa20poly1305_open_afternm","_crypto_box_curve25519xsalsa20poly1305_publickeybytes","_crypto_box_curve25519xsalsa20poly1305_secretkeybytes","_crypto_box_curve25519xsalsa20poly1305_seed_keypair","_crypto_box_curve25519xsalsa20poly1305_seedbytes","_crypto_box_curve25519xsalsa20poly1305_zerobytes","_crypto_box_detached","_crypto_box_detached_afternm","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_macbytes","_crypto_box_noncebytes","_crypto_box_open","_crypto_box_open_afternm","_crypto_box_open_detached","_crypto_box_open_detached_afternm","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_primitive","_crypto_box_publickeybytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_sealbytes","_crypto_box_secretkeybytes","_crypto_box_seed_keypair","_crypto_box_seedbytes","_crypto_box_zerobytes","_crypto_core_hchacha20","_crypto_core_hchacha20_constbytes","_crypto_core_hchacha20_inputbytes","_crypto_core_hchacha20_keybytes","_crypto_core_hchacha20_outputbytes","_crypto_core_hsalsa20","_crypto_core_hsalsa20_constbytes","_crypto_core_hsalsa20_inputbytes","_crypto_core_hsalsa20_keybytes","_crypto_core_hsalsa20_outputbytes","_crypto_core_salsa20","_crypto_core_salsa2012","_crypto_core_salsa2012_constbytes","_crypto_core_salsa2012_inputbytes","_crypto_core_salsa2012_keybytes","_crypto_core_salsa2012_outputbytes","_crypto_core_salsa208","_crypto_core_salsa208_constbytes","_crypto_core_salsa208_inputbytes","_crypto_core_salsa208_keybytes","_crypto_core_salsa208_outputbytes","_crypto_core_salsa20_constbytes","_crypto_core_salsa20_inputbytes","_crypto_core_salsa20_keybytes","_crypto_core_salsa20_outputbytes","_crypto_generichash","_crypto_generichash_blake2b","_crypto_generichash_blake2b_bytes","_crypto_generichash_blake2b_bytes_max","_crypto_generichash_blake2b_bytes_min","_crypto_generichash_blake2b_final","_crypto_generichash_blake2b_init","_crypto_generichash_blake2b_init_salt_personal","_crypto_generichash_blake2b_keybytes","_crypto_generichash_blake2b_keybytes_max","_crypto_generichash_blake2b_keybytes_min","_crypto_generichash_blake2b_keygen","_crypto_generichash_blake2b_personalbytes","_crypto_generichash_blake2b_salt_personal","_crypto_generichash_blake2b_saltbytes","_crypto_generichash_blake2b_statebytes","_crypto_generichash_blake2b_update","_crypto_generichash_bytes","_crypto_generichash_bytes_max","_crypto_generichash_bytes_min","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keybytes_max","_crypto_generichash_keybytes_min","_crypto_generichash_keygen","_crypto_generichash_primitive","_crypto_generichash_statebytes","_crypto_generichash_update","_crypto_hash","_crypto_hash_bytes","_crypto_hash_primitive","_crypto_hash_sha256","_crypto_hash_sha256_bytes","_crypto_hash_sha256_final","_crypto_hash_sha256_init","_crypto_hash_sha256_statebytes","_crypto_hash_sha256_update","_crypto_hash_sha512","_crypto_hash_sha512_bytes","_crypto_hash_sha512_final","_crypto_hash_sha512_init","_crypto_hash_sha512_statebytes","_crypto_hash_sha512_update","_crypto_kdf_blake2b_bytes_max","_crypto_kdf_blake2b_bytes_min","_crypto_kdf_blake2b_contextbytes","_crypto_kdf_blake2b_derive_from_key","_crypto_kdf_blake2b_keybytes","_crypto_kdf_bytes_max","_crypto_kdf_bytes_min","_crypto_kdf_contextbytes","_crypto_kdf_derive_from_key","_crypto_kdf_keybytes","_crypto_kdf_keygen","_crypto_kdf_primitive","_crypto_kx_client_session_keys","_crypto_kx_keypair","_crypto_kx_primitive","_crypto_kx_publickeybytes","_crypto_kx_secretkeybytes","_crypto_kx_seed_keypair","_crypto_kx_seedbytes","_crypto_kx_server_session_keys","_crypto_kx_sessionkeybytes","_crypto_onetimeauth","_crypto_onetimeauth_bytes","_crypto_onetimeauth_final","_crypto_onetimeauth_init","_crypto_onetimeauth_keybytes","_crypto_onetimeauth_keygen","_crypto_onetimeauth_poly1305","_crypto_onetimeauth_poly1305_bytes","_crypto_onetimeauth_poly1305_final","_crypto_onetimeauth_poly1305_init","_crypto_onetimeauth_poly1305_keybytes","_crypto_onetimeauth_poly1305_keygen","_crypto_onetimeauth_poly1305_statebytes","_crypto_onetimeauth_poly1305_update","_crypto_onetimeauth_poly1305_verify","_crypto_onetimeauth_primitive","_crypto_onetimeauth_statebytes","_crypto_onetimeauth_update","_crypto_onetimeauth_verify","_crypto_pwhash","_crypto_pwhash_alg_argon2i13","_crypto_pwhash_alg_argon2id13","_crypto_pwhash_alg_default","_crypto_pwhash_argon2i","_crypto_pwhash_argon2i_alg_argon2i13","_crypto_pwhash_argon2i_bytes_max","_crypto_pwhash_argon2i_bytes_min","_crypto_pwhash_argon2i_memlimit_interactive","_crypto_pwhash_argon2i_memlimit_max","_crypto_pwhash_argon2i_memlimit_min","_crypto_pwhash_argon2i_memlimit_moderate","_crypto_pwhash_argon2i_memlimit_sensitive","_crypto_pwhash_argon2i_opslimit_interactive","_crypto_pwhash_argon2i_opslimit_max","_crypto_pwhash_argon2i_opslimit_min","_crypto_pwhash_argon2i_opslimit_moderate","_crypto_pwhash_argon2i_opslimit_sensitive","_crypto_pwhash_argon2i_passwd_max","_crypto_pwhash_argon2i_passwd_min","_crypto_pwhash_argon2i_saltbytes","_crypto_pwhash_argon2i_str","_crypto_pwhash_argon2i_str_needs_rehash","_crypto_pwhash_argon2i_str_verify","_crypto_pwhash_argon2i_strbytes","_crypto_pwhash_argon2i_strprefix","_crypto_pwhash_argon2id","_crypto_pwhash_argon2id_alg_argon2id13","_crypto_pwhash_argon2id_bytes_max","_crypto_pwhash_argon2id_bytes_min","_crypto_pwhash_argon2id_memlimit_interactive","_crypto_pwhash_argon2id_memlimit_max","_crypto_pwhash_argon2id_memlimit_min","_crypto_pwhash_argon2id_memlimit_moderate","_crypto_pwhash_argon2id_memlimit_sensitive","_crypto_pwhash_argon2id_opslimit_interactive","_crypto_pwhash_argon2id_opslimit_max","_crypto_pwhash_argon2id_opslimit_min","_crypto_pwhash_argon2id_opslimit_moderate","_crypto_pwhash_argon2id_opslimit_sensitive","_crypto_pwhash_argon2id_passwd_max","_crypto_pwhash_argon2id_passwd_min","_crypto_pwhash_argon2id_saltbytes","_crypto_pwhash_argon2id_str","_crypto_pwhash_argon2id_str_needs_rehash","_crypto_pwhash_argon2id_str_verify","_crypto_pwhash_argon2id_strbytes","_crypto_pwhash_argon2id_strprefix","_crypto_pwhash_bytes_max","_crypto_pwhash_bytes_min","_crypto_pwhash_memlimit_interactive","_crypto_pwhash_memlimit_max","_crypto_pwhash_memlimit_min","_crypto_pwhash_memlimit_moderate","_crypto_pwhash_memlimit_sensitive","_crypto_pwhash_opslimit_interactive","_crypto_pwhash_opslimit_max","_crypto_pwhash_opslimit_min","_crypto_pwhash_opslimit_moderate","_crypto_pwhash_opslimit_sensitive","_crypto_pwhash_passwd_max","_crypto_pwhash_passwd_min","_crypto_pwhash_primitive","_crypto_pwhash_saltbytes","_crypto_pwhash_scryptsalsa208sha256","_crypto_pwhash_scryptsalsa208sha256_bytes_max","_crypto_pwhash_scryptsalsa208sha256_bytes_min","_crypto_pwhash_scryptsalsa208sha256_ll","_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive","_crypto_pwhash_scryptsalsa208sha256_memlimit_max","_crypto_pwhash_scryptsalsa208sha256_memlimit_min","_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive","_crypto_pwhash_scryptsalsa208sha256_opslimit_max","_crypto_pwhash_scryptsalsa208sha256_opslimit_min","_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_passwd_max","_crypto_pwhash_scryptsalsa208sha256_passwd_min","_crypto_pwhash_scryptsalsa208sha256_saltbytes","_crypto_pwhash_scryptsalsa208sha256_str","_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash","_crypto_pwhash_scryptsalsa208sha256_str_verify","_crypto_pwhash_scryptsalsa208sha256_strbytes","_crypto_pwhash_scryptsalsa208sha256_strprefix","_crypto_pwhash_str","_crypto_pwhash_str_alg","_crypto_pwhash_str_needs_rehash","_crypto_pwhash_str_verify","_crypto_pwhash_strbytes","_crypto_pwhash_strprefix","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_bytes","_crypto_scalarmult_curve25519","_crypto_scalarmult_curve25519_base","_crypto_scalarmult_curve25519_bytes","_crypto_scalarmult_curve25519_scalarbytes","_crypto_scalarmult_primitive","_crypto_scalarmult_scalarbytes","_crypto_secretbox","_crypto_secretbox_boxzerobytes","_crypto_secretbox_detached","_crypto_secretbox_easy","_crypto_secretbox_keybytes","_crypto_secretbox_keygen","_crypto_secretbox_macbytes","_crypto_secretbox_noncebytes","_crypto_secretbox_open","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_secretbox_primitive","_crypto_secretbox_xchacha20poly1305_detached","_crypto_secretbox_xchacha20poly1305_easy","_crypto_secretbox_xchacha20poly1305_keybytes","_crypto_secretbox_xchacha20poly1305_macbytes","_crypto_secretbox_xchacha20poly1305_noncebytes","_crypto_secretbox_xchacha20poly1305_open_detached","_crypto_secretbox_xchacha20poly1305_open_easy","_crypto_secretbox_xsalsa20poly1305","_crypto_secretbox_xsalsa20poly1305_boxzerobytes","_crypto_secretbox_xsalsa20poly1305_keybytes","_crypto_secretbox_xsalsa20poly1305_keygen","_crypto_secretbox_xsalsa20poly1305_macbytes","_crypto_secretbox_xsalsa20poly1305_noncebytes","_crypto_secretbox_xsalsa20poly1305_open","_crypto_secretbox_xsalsa20poly1305_zerobytes","_crypto_secretbox_zerobytes","_crypto_secretstream_xchacha20poly1305_abytes","_crypto_secretstream_xchacha20poly1305_headerbytes","_crypto_secretstream_xchacha20poly1305_init_pull","_crypto_secretstream_xchacha20poly1305_init_push","_crypto_secretstream_xchacha20poly1305_keybytes","_crypto_secretstream_xchacha20poly1305_keygen","_crypto_secretstream_xchacha20poly1305_messagebytes_max","_crypto_secretstream_xchacha20poly1305_pull","_crypto_secretstream_xchacha20poly1305_push","_crypto_secretstream_xchacha20poly1305_rekey","_crypto_secretstream_xchacha20poly1305_statebytes","_crypto_secretstream_xchacha20poly1305_tag_final","_crypto_secretstream_xchacha20poly1305_tag_message","_crypto_secretstream_xchacha20poly1305_tag_push","_crypto_secretstream_xchacha20poly1305_tag_rekey","_crypto_shorthash","_crypto_shorthash_bytes","_crypto_shorthash_keybytes","_crypto_shorthash_keygen","_crypto_shorthash_primitive","_crypto_shorthash_siphash24","_crypto_shorthash_siphash24_bytes","_crypto_shorthash_siphash24_keybytes","_crypto_shorthash_siphashx24","_crypto_shorthash_siphashx24_bytes","_crypto_shorthash_siphashx24_keybytes","_crypto_sign","_crypto_sign_bytes","_crypto_sign_detached","_crypto_sign_ed25519","_crypto_sign_ed25519_bytes","_crypto_sign_ed25519_detached","_crypto_sign_ed25519_keypair","_crypto_sign_ed25519_open","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_publickeybytes","_crypto_sign_ed25519_secretkeybytes","_crypto_sign_ed25519_seed_keypair","_crypto_sign_ed25519_seedbytes","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_ed25519_sk_to_pk","_crypto_sign_ed25519_sk_to_seed","_crypto_sign_ed25519_verify_detached","_crypto_sign_ed25519ph_final_create","_crypto_sign_ed25519ph_final_verify","_crypto_sign_ed25519ph_init","_crypto_sign_ed25519ph_statebytes","_crypto_sign_ed25519ph_update","_crypto_sign_final_create","_crypto_sign_final_verify","_crypto_sign_init","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_primitive","_crypto_sign_publickeybytes","_crypto_sign_secretkeybytes","_crypto_sign_seed_keypair","_crypto_sign_seedbytes","_crypto_sign_statebytes","_crypto_sign_update","_crypto_sign_verify_detached","_crypto_stream","_crypto_stream_chacha20","_crypto_stream_chacha20_ietf","_crypto_stream_chacha20_ietf_keybytes","_crypto_stream_chacha20_ietf_keygen","_crypto_stream_chacha20_ietf_noncebytes","_crypto_stream_chacha20_ietf_xor","_crypto_stream_chacha20_ietf_xor_ic","_crypto_stream_chacha20_keybytes","_crypto_stream_chacha20_keygen","_crypto_stream_chacha20_noncebytes","_crypto_stream_chacha20_xor","_crypto_stream_chacha20_xor_ic","_crypto_stream_keybytes","_crypto_stream_keygen","_crypto_stream_noncebytes","_crypto_stream_primitive","_crypto_stream_salsa20","_crypto_stream_salsa2012","_crypto_stream_salsa2012_keybytes","_crypto_stream_salsa2012_keygen","_crypto_stream_salsa2012_noncebytes","_crypto_stream_salsa2012_xor","_crypto_stream_salsa208","_crypto_stream_salsa208_keybytes","_crypto_stream_salsa208_keygen","_crypto_stream_salsa208_messagebytes_max","_crypto_stream_salsa208_noncebytes","_crypto_stream_salsa208_xor","_crypto_stream_salsa20_keybytes","_crypto_stream_salsa20_keygen","_crypto_stream_salsa20_noncebytes","_crypto_stream_salsa20_xor","_crypto_stream_salsa20_xor_ic","_crypto_stream_xchacha20","_crypto_stream_xchacha20_keybytes","_crypto_stream_xchacha20_keygen","_crypto_stream_xchacha20_noncebytes","_crypto_stream_xchacha20_xor","_crypto_stream_xchacha20_xor_ic","_crypto_stream_xor","_crypto_stream_xsalsa20","_crypto_stream_xsalsa20_keybytes","_crypto_stream_xsalsa20_keygen","_crypto_stream_xsalsa20_noncebytes","_crypto_stream_xsalsa20_xor","_crypto_stream_xsalsa20_xor_ic","_crypto_verify_16","_crypto_verify_16_bytes","_crypto_verify_32","_crypto_verify_32_bytes","_crypto_verify_64","_crypto_verify_64_bytes","_randombytes","_randombytes_buf","_randombytes_buf_deterministic","_randombytes_close","_randombytes_implementation_name","_randombytes_random","_randombytes_seedbytes","_randombytes_stir","_randombytes_uniform","_sodium_base642bin","_sodium_base64_encoded_len","_sodium_bin2base64","_sodium_bin2hex","_sodium_hex2bin","_sodium_init","_sodium_library_minimal","_sodium_library_version_major","_sodium_library_version_minor","_sodium_pad","_sodium_unpad","_sodium_version_string"]'
export TOTAL_MEMORY=16777216
export TOTAL_MEMORY_SUMO=67108864
export LDFLAGS="-s RESERVED_FUNCTION_POINTERS=8"
diff --git a/libsodium.vcxproj b/libsodium.vcxproj
index f79ac1a9..106cc5b4 100644
--- a/libsodium.vcxproj
+++ b/libsodium.vcxproj
@@ -315,243 +315,232 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
+
-
+
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/libsodium.vcxproj.filters b/libsodium.vcxproj.filters
index 96d13605..7b57b934 100644
--- a/libsodium.vcxproj.filters
+++ b/libsodium.vcxproj.filters
@@ -15,97 +15,127 @@
-
+
Source Files
-
+
Source Files
-
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
Source Files
Source Files
-
- Source Files
-
Source Files
Source Files
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
+
Source Files
@@ -114,7 +144,40 @@
Source Files
-
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
Source Files
@@ -129,177 +192,84 @@
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
+
Source Files
Source Files
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
+
Source Files
Source Files
+
+ Source Files
+
Source Files
Source Files
-
- Source Files
-
Source Files
Source Files
-
- Source Files
-
Source Files
Source Files
+
+ Source Files
+
Source Files
@@ -312,171 +282,363 @@
Source Files
-
- Source Files
-
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
Source Files
-
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
Source Files
-
+
Header Files
-
+
Header Files
Header Files
+
+ Header Files
+
+
+ Header Files
+
Header Files
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
Header Files
Header Files
+
+ Header Files
+
+
+ Header Files
+
Header Files
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
Header Files
Header Files
+
+ Header Files
+
Header Files
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
Header Files
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
+
Header Files
Header Files
-
+
+ Header Files
+
+
Header Files
@@ -488,28 +650,19 @@
Header Files
-
+
Header Files
Header Files
-
- Header Files
-
Header Files
Header Files
-
- Header Files
-
-
- Header Files
-
-
+
Header Files
@@ -518,208 +671,22 @@
Header Files
-
+
Header Files
Header Files
-
+
Header Files
-
+
Header Files
-
+
Header Files
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
+
Header Files
diff --git a/src/libsodium/Makefile.am b/src/libsodium/Makefile.am
index c0480ac6..3cac04ec 100644
--- a/src/libsodium/Makefile.am
+++ b/src/libsodium/Makefile.am
@@ -169,16 +169,6 @@ libsodium_la_SOURCES += \
crypto_shorthash/siphash24/shorthash_siphashx24.c \
crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c \
crypto_sign/ed25519/ref10/obsolete.c \
- crypto_stream/aes128ctr/nacl/afternm_aes128ctr.c \
- crypto_stream/aes128ctr/nacl/beforenm_aes128ctr.c \
- crypto_stream/aes128ctr/nacl/common.h \
- crypto_stream/aes128ctr/nacl/consts.h \
- crypto_stream/aes128ctr/nacl/consts_aes128ctr.c \
- crypto_stream/aes128ctr/nacl/int128.h \
- crypto_stream/aes128ctr/nacl/int128_aes128ctr.c \
- crypto_stream/aes128ctr/nacl/stream_aes128ctr_nacl.c \
- crypto_stream/aes128ctr/nacl/xor_afternm_aes128ctr.c \
- crypto_stream/aes128ctr/stream_aes128ctr.c \
crypto_stream/salsa2012/ref/stream_salsa2012_ref.c \
crypto_stream/salsa2012/stream_salsa2012.c \
crypto_stream/salsa208/ref/stream_salsa208_ref.c \
diff --git a/src/libsodium/crypto_stream/aes128ctr/nacl/afternm_aes128ctr.c b/src/libsodium/crypto_stream/aes128ctr/nacl/afternm_aes128ctr.c
deleted file mode 100644
index 1cb21c15..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/nacl/afternm_aes128ctr.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Author: Peter Schwabe, ported from an assembly implementation by Emilia
- * Käsper
- * Date: 2009-03-19
- * Public domain */
-
-#include "common.h"
-#include "consts.h"
-#include "crypto_stream_aes128ctr.h"
-#include "int128.h"
-
-int
-crypto_stream_aes128ctr_afternm(unsigned char *out, unsigned long long len,
- const unsigned char *nonce,
- const unsigned char *c)
-{
- aes_uint128_t xmm0;
- aes_uint128_t xmm1;
- aes_uint128_t xmm2;
- aes_uint128_t xmm3;
- aes_uint128_t xmm4;
- aes_uint128_t xmm5;
- aes_uint128_t xmm6;
- aes_uint128_t xmm7;
- aes_uint128_t xmm8;
- aes_uint128_t xmm9;
- aes_uint128_t xmm10;
- aes_uint128_t xmm11;
- aes_uint128_t xmm12;
- aes_uint128_t xmm13;
- aes_uint128_t xmm14;
- aes_uint128_t xmm15;
- aes_uint128_t nonce_stack;
- unsigned long long lensav;
- unsigned char bl[128];
- unsigned char *blp;
- unsigned char *np;
- unsigned char b;
- uint32_t tmp;
-
- /* Copy nonce on the stack */
- copy2(&nonce_stack, (const aes_uint128_t *) (nonce + 0));
- np = (unsigned char *) &nonce_stack;
-
-enc_block:
-
- xmm0 = *(aes_uint128_t *) (np + 0);
- copy2(&xmm1, &xmm0);
- shufb(&xmm1, SWAP32);
- copy2(&xmm2, &xmm1);
- copy2(&xmm3, &xmm1);
- copy2(&xmm4, &xmm1);
- copy2(&xmm5, &xmm1);
- copy2(&xmm6, &xmm1);
- copy2(&xmm7, &xmm1);
-
- add_uint32_big(&xmm1, 1);
- add_uint32_big(&xmm2, 2);
- add_uint32_big(&xmm3, 3);
- add_uint32_big(&xmm4, 4);
- add_uint32_big(&xmm5, 5);
- add_uint32_big(&xmm6, 6);
- add_uint32_big(&xmm7, 7);
-
- shufb(&xmm0, M0);
- shufb(&xmm1, M0SWAP);
- shufb(&xmm2, M0SWAP);
- shufb(&xmm3, M0SWAP);
- shufb(&xmm4, M0SWAP);
- shufb(&xmm5, M0SWAP);
- shufb(&xmm6, M0SWAP);
- shufb(&xmm7, M0SWAP);
-
- bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, xmm8);
-
- aesround(1, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- aesround(2, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
- aesround(3, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- aesround(4, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
- aesround(5, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- aesround(6, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
- aesround(7, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- aesround(8, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
- aesround(9, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- lastround(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1,
- xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
-
- bitslice(xmm13, xmm10, xmm15, xmm11, xmm14, xmm12, xmm9, xmm8, xmm0);
-
- if (len < 128) {
- goto partial;
- }
- if (len == 128) {
- goto full;
- }
- tmp = LOAD32_BE(np + 12);
- tmp += 8;
- STORE32_BE(np + 12, tmp);
-
- *(aes_uint128_t *) (out + 0) = xmm8;
- *(aes_uint128_t *) (out + 16) = xmm9;
- *(aes_uint128_t *) (out + 32) = xmm12;
- *(aes_uint128_t *) (out + 48) = xmm14;
- *(aes_uint128_t *) (out + 64) = xmm11;
- *(aes_uint128_t *) (out + 80) = xmm15;
- *(aes_uint128_t *) (out + 96) = xmm10;
- *(aes_uint128_t *) (out + 112) = xmm13;
-
- len -= 128;
- out += 128;
-
- goto enc_block;
-
-partial:
-
- lensav = len;
- len >>= 4;
-
- tmp = LOAD32_BE(np + 12);
- tmp += len;
- STORE32_BE(np + 12, tmp);
-
- blp = bl;
-
- *(aes_uint128_t *) (blp + 0) = xmm8;
- *(aes_uint128_t *) (blp + 16) = xmm9;
- *(aes_uint128_t *) (blp + 32) = xmm12;
- *(aes_uint128_t *) (blp + 48) = xmm14;
- *(aes_uint128_t *) (blp + 64) = xmm11;
- *(aes_uint128_t *) (blp + 80) = xmm15;
- *(aes_uint128_t *) (blp + 96) = xmm10;
- *(aes_uint128_t *) (blp + 112) = xmm13;
-
-bytes:
-
- if (lensav == 0) {
- goto end;
- }
- b = blp[0]; /* clang false positive */
-
- *(unsigned char *) (out + 0) = b;
-
- blp += 1;
- out += 1;
- lensav -= 1;
-
- goto bytes;
-
-full:
-
- tmp = LOAD32_BE(np + 12);
- tmp += 8;
- STORE32_BE(np + 12, tmp);
-
- *(aes_uint128_t *) (out + 0) = xmm8;
- *(aes_uint128_t *) (out + 16) = xmm9;
- *(aes_uint128_t *) (out + 32) = xmm12;
- *(aes_uint128_t *) (out + 48) = xmm14;
- *(aes_uint128_t *) (out + 64) = xmm11;
- *(aes_uint128_t *) (out + 80) = xmm15;
- *(aes_uint128_t *) (out + 96) = xmm10;
- *(aes_uint128_t *) (out + 112) = xmm13;
-
-end:
- return 0;
-}
diff --git a/src/libsodium/crypto_stream/aes128ctr/nacl/beforenm_aes128ctr.c b/src/libsodium/crypto_stream/aes128ctr/nacl/beforenm_aes128ctr.c
deleted file mode 100644
index 9fa5bbd9..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/nacl/beforenm_aes128ctr.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Author: Peter Schwabe, ported from an assembly implementation by Emilia
- * Käsper
- * Date: 2009-03-19
- * Public domain */
-
-#include "common.h"
-#include "consts.h"
-#include "crypto_stream_aes128ctr.h"
-#include "int128.h"
-
-int
-crypto_stream_aes128ctr_beforenm(unsigned char *c, const unsigned char *k)
-{
- aes_uint128_t xmm0;
- aes_uint128_t xmm1;
- aes_uint128_t xmm2;
- aes_uint128_t xmm3;
- aes_uint128_t xmm4;
- aes_uint128_t xmm5;
- aes_uint128_t xmm6;
- aes_uint128_t xmm7;
- aes_uint128_t xmm8;
- aes_uint128_t xmm9;
- aes_uint128_t xmm10;
- aes_uint128_t xmm11;
- aes_uint128_t xmm12;
- aes_uint128_t xmm13;
- aes_uint128_t xmm14;
- aes_uint128_t xmm15;
- aes_uint128_t t;
-
- bitslicekey0(k, c);
-
- keyexpbs1(xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10,
- xmm11, xmm12, xmm13, xmm14, xmm15, c);
- keyexpbs(xmm0, xmm1, xmm4, xmm6, xmm3, xmm7, xmm2, xmm5, xmm8, xmm9, xmm10,
- xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm1);
- , 2, c);
- keyexpbs(xmm0, xmm1, xmm3, xmm2, xmm6, xmm5, xmm4, xmm7, xmm8, xmm9, xmm10,
- xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm6);
- , 3, c);
- keyexpbs(xmm0, xmm1, xmm6, xmm4, xmm2, xmm7, xmm3, xmm5, xmm8, xmm9, xmm10,
- xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm3);
- , 4, c);
-
- keyexpbs(xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10,
- xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm3);
- , 5, c);
- keyexpbs(xmm0, xmm1, xmm4, xmm6, xmm3, xmm7, xmm2, xmm5, xmm8, xmm9, xmm10,
- xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm5);
- , 6, c);
- keyexpbs(xmm0, xmm1, xmm3, xmm2, xmm6, xmm5, xmm4, xmm7, xmm8, xmm9, xmm10,
- xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm3);
- , 7, c);
- keyexpbs(xmm0, xmm1, xmm6, xmm4, xmm2, xmm7, xmm3, xmm5, xmm8, xmm9, xmm10,
- xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm7);
- , 8, c);
-
- keyexpbs(xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10,
- xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm0);
- xor_rcon(&xmm1); xor_rcon(&xmm6); xor_rcon(&xmm3);, 9, c);
- keyexpbs10(xmm0, xmm1, xmm4, xmm6, xmm3, xmm7, xmm2, xmm5, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
-
- return 0;
-}
diff --git a/src/libsodium/crypto_stream/aes128ctr/nacl/common.h b/src/libsodium/crypto_stream/aes128ctr/nacl/common.h
deleted file mode 100644
index c1e6394b..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/nacl/common.h
+++ /dev/null
@@ -1,766 +0,0 @@
-/* Author: Peter Schwabe, ported from an assembly implementation by Emilia
- Käsper
- Date: 2009-03-19
- Public domain */
-#ifndef aes128ctr_nacl_common_H
-#define aes128ctr_nacl_common_H
-
-#include "private/common.h"
-
-/* Macros required only for key expansion */
-
-#define keyexpbs1(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, \
- t7, bskey) \
- rotbyte(&b0); \
- rotbyte(&b1); \
- rotbyte(&b2); \
- rotbyte(&b3); \
- rotbyte(&b4); \
- rotbyte(&b5); \
- rotbyte(&b6); \
- rotbyte(&b7); \
- \
- sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7); \
- \
- xor_rcon(&b0); \
- shufb(&b0, EXPB0); \
- shufb(&b1, EXPB0); \
- shufb(&b4, EXPB0); \
- shufb(&b6, EXPB0); \
- shufb(&b3, EXPB0); \
- shufb(&b7, EXPB0); \
- shufb(&b2, EXPB0); \
- shufb(&b5, EXPB0); \
- shufb(&b0, EXPB0); \
- \
- t0 = *(aes_uint128_t *) (bskey + 0); \
- t1 = *(aes_uint128_t *) (bskey + 16); \
- t2 = *(aes_uint128_t *) (bskey + 32); \
- t3 = *(aes_uint128_t *) (bskey + 48); \
- t4 = *(aes_uint128_t *) (bskey + 64); \
- t5 = *(aes_uint128_t *) (bskey + 80); \
- t6 = *(aes_uint128_t *) (bskey + 96); \
- t7 = *(aes_uint128_t *) (bskey + 112); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- rshift32_littleendian(&t0, 8); \
- rshift32_littleendian(&t1, 8); \
- rshift32_littleendian(&t2, 8); \
- rshift32_littleendian(&t3, 8); \
- rshift32_littleendian(&t4, 8); \
- rshift32_littleendian(&t5, 8); \
- rshift32_littleendian(&t6, 8); \
- rshift32_littleendian(&t7, 8); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- rshift32_littleendian(&t0, 8); \
- rshift32_littleendian(&t1, 8); \
- rshift32_littleendian(&t2, 8); \
- rshift32_littleendian(&t3, 8); \
- rshift32_littleendian(&t4, 8); \
- rshift32_littleendian(&t5, 8); \
- rshift32_littleendian(&t6, 8); \
- rshift32_littleendian(&t7, 8); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- rshift32_littleendian(&t0, 8); \
- rshift32_littleendian(&t1, 8); \
- rshift32_littleendian(&t2, 8); \
- rshift32_littleendian(&t3, 8); \
- rshift32_littleendian(&t4, 8); \
- rshift32_littleendian(&t5, 8); \
- rshift32_littleendian(&t6, 8); \
- rshift32_littleendian(&t7, 8); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- *(aes_uint128_t *) (bskey + 128) = b0; \
- *(aes_uint128_t *) (bskey + 144) = b1; \
- *(aes_uint128_t *) (bskey + 160) = b4; \
- *(aes_uint128_t *) (bskey + 176) = b6; \
- *(aes_uint128_t *) (bskey + 192) = b3; \
- *(aes_uint128_t *) (bskey + 208) = b7; \
- *(aes_uint128_t *) (bskey + 224) = b2; \
- *(aes_uint128_t *) (bskey + 240) = b5
-
-#define keyexpbs10(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, \
- t7, bskey) \
- toggle(&b0); \
- toggle(&b1); \
- toggle(&b5); \
- toggle(&b6); \
- rotbyte(&b0); \
- rotbyte(&b1); \
- rotbyte(&b2); \
- rotbyte(&b3); \
- rotbyte(&b4); \
- rotbyte(&b5); \
- rotbyte(&b6); \
- rotbyte(&b7); \
- \
- sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7); \
- \
- xor_rcon(&b1); \
- xor_rcon(&b4); \
- xor_rcon(&b3); \
- xor_rcon(&b7); \
- shufb(&b0, EXPB0); \
- shufb(&b1, EXPB0); \
- shufb(&b4, EXPB0); \
- shufb(&b6, EXPB0); \
- shufb(&b3, EXPB0); \
- shufb(&b7, EXPB0); \
- shufb(&b2, EXPB0); \
- shufb(&b5, EXPB0); \
- \
- t0 = *(aes_uint128_t *) (bskey + 9 * 128 + 0); \
- t1 = *(aes_uint128_t *) (bskey + 9 * 128 + 16); \
- t2 = *(aes_uint128_t *) (bskey + 9 * 128 + 32); \
- t3 = *(aes_uint128_t *) (bskey + 9 * 128 + 48); \
- t4 = *(aes_uint128_t *) (bskey + 9 * 128 + 64); \
- t5 = *(aes_uint128_t *) (bskey + 9 * 128 + 80); \
- t6 = *(aes_uint128_t *) (bskey + 9 * 128 + 96); \
- t7 = *(aes_uint128_t *) (bskey + 9 * 128 + 112); \
- \
- toggle(&t0); \
- toggle(&t1); \
- toggle(&t5); \
- toggle(&t6); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- rshift32_littleendian(&t0, 8); \
- rshift32_littleendian(&t1, 8); \
- rshift32_littleendian(&t2, 8); \
- rshift32_littleendian(&t3, 8); \
- rshift32_littleendian(&t4, 8); \
- rshift32_littleendian(&t5, 8); \
- rshift32_littleendian(&t6, 8); \
- rshift32_littleendian(&t7, 8); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- rshift32_littleendian(&t0, 8); \
- rshift32_littleendian(&t1, 8); \
- rshift32_littleendian(&t2, 8); \
- rshift32_littleendian(&t3, 8); \
- rshift32_littleendian(&t4, 8); \
- rshift32_littleendian(&t5, 8); \
- rshift32_littleendian(&t6, 8); \
- rshift32_littleendian(&t7, 8); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- rshift32_littleendian(&t0, 8); \
- rshift32_littleendian(&t1, 8); \
- rshift32_littleendian(&t2, 8); \
- rshift32_littleendian(&t3, 8); \
- rshift32_littleendian(&t4, 8); \
- rshift32_littleendian(&t5, 8); \
- rshift32_littleendian(&t6, 8); \
- rshift32_littleendian(&t7, 8); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- shufb(&b0, M0); \
- shufb(&b1, M0); \
- shufb(&b2, M0); \
- shufb(&b3, M0); \
- shufb(&b4, M0); \
- shufb(&b5, M0); \
- shufb(&b6, M0); \
- shufb(&b7, M0); \
- \
- *(aes_uint128_t *) (bskey + 1280) = b0; \
- *(aes_uint128_t *) (bskey + 1296) = b1; \
- *(aes_uint128_t *) (bskey + 1312) = b4; \
- *(aes_uint128_t *) (bskey + 1328) = b6; \
- *(aes_uint128_t *) (bskey + 1344) = b3; \
- *(aes_uint128_t *) (bskey + 1360) = b7; \
- *(aes_uint128_t *) (bskey + 1376) = b2; \
- *(aes_uint128_t *) (bskey + 1392) = b5
-
-#define keyexpbs(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, \
- t7, rcon, i, bskey) \
- toggle(&b0); \
- toggle(&b1); \
- toggle(&b5); \
- toggle(&b6); \
- rotbyte(&b0); \
- rotbyte(&b1); \
- rotbyte(&b2); \
- rotbyte(&b3); \
- rotbyte(&b4); \
- rotbyte(&b5); \
- rotbyte(&b6); \
- rotbyte(&b7); \
- \
- sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7); \
- \
- rcon; \
- shufb(&b0, EXPB0); \
- shufb(&b1, EXPB0); \
- shufb(&b4, EXPB0); \
- shufb(&b6, EXPB0); \
- shufb(&b3, EXPB0); \
- shufb(&b7, EXPB0); \
- shufb(&b2, EXPB0); \
- shufb(&b5, EXPB0); \
- \
- t0 = *(aes_uint128_t *) (bskey + (i - 1) * 128 + 0); \
- t1 = *(aes_uint128_t *) (bskey + (i - 1) * 128 + 16); \
- t2 = *(aes_uint128_t *) (bskey + (i - 1) * 128 + 32); \
- t3 = *(aes_uint128_t *) (bskey + (i - 1) * 128 + 48); \
- t4 = *(aes_uint128_t *) (bskey + (i - 1) * 128 + 64); \
- t5 = *(aes_uint128_t *) (bskey + (i - 1) * 128 + 80); \
- t6 = *(aes_uint128_t *) (bskey + (i - 1) * 128 + 96); \
- t7 = *(aes_uint128_t *) (bskey + (i - 1) * 128 + 112); \
- \
- toggle(&t0); \
- toggle(&t1); \
- toggle(&t5); \
- toggle(&t6); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- rshift32_littleendian(&t0, 8); \
- rshift32_littleendian(&t1, 8); \
- rshift32_littleendian(&t2, 8); \
- rshift32_littleendian(&t3, 8); \
- rshift32_littleendian(&t4, 8); \
- rshift32_littleendian(&t5, 8); \
- rshift32_littleendian(&t6, 8); \
- rshift32_littleendian(&t7, 8); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- rshift32_littleendian(&t0, 8); \
- rshift32_littleendian(&t1, 8); \
- rshift32_littleendian(&t2, 8); \
- rshift32_littleendian(&t3, 8); \
- rshift32_littleendian(&t4, 8); \
- rshift32_littleendian(&t5, 8); \
- rshift32_littleendian(&t6, 8); \
- rshift32_littleendian(&t7, 8); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- rshift32_littleendian(&t0, 8); \
- rshift32_littleendian(&t1, 8); \
- rshift32_littleendian(&t2, 8); \
- rshift32_littleendian(&t3, 8); \
- rshift32_littleendian(&t4, 8); \
- rshift32_littleendian(&t5, 8); \
- rshift32_littleendian(&t6, 8); \
- rshift32_littleendian(&t7, 8); \
- \
- xor2(&b0, &t0); \
- xor2(&b1, &t1); \
- xor2(&b4, &t2); \
- xor2(&b6, &t3); \
- xor2(&b3, &t4); \
- xor2(&b7, &t5); \
- xor2(&b2, &t6); \
- xor2(&b5, &t7); \
- \
- *(aes_uint128_t *) (bskey + i * 128 + 0) = b0; \
- *(aes_uint128_t *) (bskey + i * 128 + 16) = b1; \
- *(aes_uint128_t *) (bskey + i * 128 + 32) = b4; \
- *(aes_uint128_t *) (bskey + i * 128 + 48) = b6; \
- *(aes_uint128_t *) (bskey + i * 128 + 64) = b3; \
- *(aes_uint128_t *) (bskey + i * 128 + 80) = b7; \
- *(aes_uint128_t *) (bskey + i * 128 + 96) = b2; \
- *(aes_uint128_t *) (bskey + i * 128 + 112) = b5
-
-/* Macros used in multiple contexts */
-
-#define bitslicekey0(key, bskey) \
- xmm0 = *(const aes_uint128_t *) (key + 0); \
- shufb(&xmm0, M0); \
- copy2(&xmm1, &xmm0); \
- copy2(&xmm2, &xmm0); \
- copy2(&xmm3, &xmm0); \
- copy2(&xmm4, &xmm0); \
- copy2(&xmm5, &xmm0); \
- copy2(&xmm6, &xmm0); \
- copy2(&xmm7, &xmm0); \
- \
- bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, t); \
- \
- *(aes_uint128_t *) (bskey + 0) = xmm0; \
- *(aes_uint128_t *) (bskey + 16) = xmm1; \
- *(aes_uint128_t *) (bskey + 32) = xmm2; \
- *(aes_uint128_t *) (bskey + 48) = xmm3; \
- *(aes_uint128_t *) (bskey + 64) = xmm4; \
- *(aes_uint128_t *) (bskey + 80) = xmm5; \
- *(aes_uint128_t *) (bskey + 96) = xmm6; \
- *(aes_uint128_t *) (bskey + 112) = xmm7
-
-#define bitslicekey10(key, bskey) \
- xmm0 = *(aes_uint128_t *) (key + 0); \
- copy2(xmm1, xmm0); \
- copy2(xmm2, xmm0); \
- copy2(xmm3, xmm0); \
- copy2(xmm4, xmm0); \
- copy2(xmm5, xmm0); \
- copy2(xmm6, xmm0); \
- copy2(xmm7, xmm0); \
- \
- bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, t); \
- \
- toggle(&xmm6); \
- toggle(&xmm5); \
- toggle(&xmm1); \
- toggle(&xmm0); \
- \
- *(aes_uint128_t *) (bskey + 0 + 1280) = xmm0; \
- *(aes_uint128_t *) (bskey + 16 + 1280) = xmm1; \
- *(aes_uint128_t *) (bskey + 32 + 1280) = xmm2; \
- *(aes_uint128_t *) (bskey + 48 + 1280) = xmm3; \
- *(aes_uint128_t *) (bskey + 64 + 1280) = xmm4; \
- *(aes_uint128_t *) (bskey + 80 + 1280) = xmm5; \
- *(aes_uint128_t *) (bskey + 96 + 1280) = xmm6; \
- *(aes_uint128_t *) (bskey + 112 + 1280) = xmm7
-
-#define bitslicekey(i, key, bskey) \
- xmm0 = *(aes_uint128_t *) (key + 0); \
- shufb(&xmm0, M0); \
- copy2(&xmm1, &xmm0); \
- copy2(&xmm2, &xmm0); \
- copy2(&xmm3, &xmm0); \
- copy2(&xmm4, &xmm0); \
- copy2(&xmm5, &xmm0); \
- copy2(&xmm6, &xmm0); \
- copy2(&xmm7, &xmm0); \
- \
- bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, t); \
- \
- toggle(&xmm6); \
- toggle(&xmm5); \
- toggle(&xmm1); \
- toggle(&xmm0); \
- \
- *(aes_uint128_t *) (bskey + 0 + 128 * i) = xmm0; \
- *(aes_uint128_t *) (bskey + 16 + 128 * i) = xmm1; \
- *(aes_uint128_t *) (bskey + 32 + 128 * i) = xmm2; \
- *(aes_uint128_t *) (bskey + 48 + 128 * i) = xmm3; \
- *(aes_uint128_t *) (bskey + 64 + 128 * i) = xmm4; \
- *(aes_uint128_t *) (bskey + 80 + 128 * i) = xmm5; \
- *(aes_uint128_t *) (bskey + 96 + 128 * i) = xmm6; \
- *(aes_uint128_t *) (bskey + 112 + 128 * i) = xmm7
-
-#define bitslice(x0, x1, x2, x3, x4, x5, x6, x7, t) \
- swapmove(x0, x1, 1, BS0, t); \
- swapmove(x2, x3, 1, BS0, t); \
- swapmove(x4, x5, 1, BS0, t); \
- swapmove(x6, x7, 1, BS0, t); \
- \
- swapmove(x0, x2, 2, BS1, t); \
- swapmove(x1, x3, 2, BS1, t); \
- swapmove(x4, x6, 2, BS1, t); \
- swapmove(x5, x7, 2, BS1, t); \
- \
- swapmove(x0, x4, 4, BS2, t); \
- swapmove(x1, x5, 4, BS2, t); \
- swapmove(x2, x6, 4, BS2, t); \
- swapmove(x3, x7, 4, BS2, t)
-
-#define swapmove(a, b, n, m, t) \
- copy2(&t, &b); \
- rshift64_littleendian(&t, n); \
- xor2(&t, &a); \
- and2(&t, &m); \
- xor2(&a, &t); \
- lshift64_littleendian(&t, n); \
- xor2(&b, &t)
-
-#define rotbyte(x) shufb(x, ROTB) /* TODO: Make faster */
-
-/* Macros used for encryption (and decryption) */
-
-#define shiftrows(x0, x1, x2, x3, x4, x5, x6, x7, i, M, bskey) \
- xor2(&x0, (const aes_uint128_t *) (bskey + 128 * (i - 1) + 0)); \
- shufb(&x0, M); \
- xor2(&x1, (const aes_uint128_t *) (bskey + 128 * (i - 1) + 16)); \
- shufb(&x1, M); \
- xor2(&x2, (const aes_uint128_t *) (bskey + 128 * (i - 1) + 32)); \
- shufb(&x2, M); \
- xor2(&x3, (const aes_uint128_t *) (bskey + 128 * (i - 1) + 48)); \
- shufb(&x3, M); \
- xor2(&x4, (const aes_uint128_t *) (bskey + 128 * (i - 1) + 64)); \
- shufb(&x4, M); \
- xor2(&x5, (const aes_uint128_t *) (bskey + 128 * (i - 1) + 80)); \
- shufb(&x5, M); \
- xor2(&x6, (const aes_uint128_t *) (bskey + 128 * (i - 1) + 96)); \
- shufb(&x6, M); \
- xor2(&x7, (const aes_uint128_t *) (bskey + 128 * (i - 1) + 112)); \
- shufb(&x7, M)
-
-#define mixcolumns(x0, x1, x2, x3, x4, x5, x6, x7, t0, t1, t2, t3, t4, t5, t6, \
- t7) \
- shufd(&t0, &x0, 0x93); \
- shufd(&t1, &x1, 0x93); \
- shufd(&t2, &x2, 0x93); \
- shufd(&t3, &x3, 0x93); \
- shufd(&t4, &x4, 0x93); \
- shufd(&t5, &x5, 0x93); \
- shufd(&t6, &x6, 0x93); \
- shufd(&t7, &x7, 0x93); \
- \
- xor2(&x0, &t0); \
- xor2(&x1, &t1); \
- xor2(&x2, &t2); \
- xor2(&x3, &t3); \
- xor2(&x4, &t4); \
- xor2(&x5, &t5); \
- xor2(&x6, &t6); \
- xor2(&x7, &t7); \
- \
- xor2(&t0, &x7); \
- xor2(&t1, &x0); \
- xor2(&t2, &x1); \
- xor2(&t1, &x7); \
- xor2(&t3, &x2); \
- xor2(&t4, &x3); \
- xor2(&t5, &x4); \
- xor2(&t3, &x7); \
- xor2(&t6, &x5); \
- xor2(&t7, &x6); \
- xor2(&t4, &x7); \
- \
- shufd(&x0, &x0, 0x4e); \
- shufd(&x1, &x1, 0x4e); \
- shufd(&x2, &x2, 0x4e); \
- shufd(&x3, &x3, 0x4e); \
- shufd(&x4, &x4, 0x4e); \
- shufd(&x5, &x5, 0x4e); \
- shufd(&x6, &x6, 0x4e); \
- shufd(&x7, &x7, 0x4e); \
- \
- xor2(&t0, &x0); \
- xor2(&t1, &x1); \
- xor2(&t2, &x2); \
- xor2(&t3, &x3); \
- xor2(&t4, &x4); \
- xor2(&t5, &x5); \
- xor2(&t6, &x6); \
- xor2(&t7, &x7)
-
-#define aesround(i, b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, \
- t6, t7, bskey) \
- shiftrows(b0, b1, b2, b3, b4, b5, b6, b7, i, SR, bskey); \
- sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7); \
- mixcolumns(b0, b1, b4, b6, b3, b7, b2, b5, t0, t1, t2, t3, t4, t5, t6, t7)
-
-#define lastround(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, \
- t7, bskey) \
- shiftrows(b0, b1, b2, b3, b4, b5, b6, b7, 10, SRM0, bskey); \
- sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7); \
- xor2(&b0, (const aes_uint128_t *) (bskey + 128 * 10)); \
- xor2(&b1, (const aes_uint128_t *) (bskey + 128 * 10 + 16)); \
- xor2(&b4, (const aes_uint128_t *) (bskey + 128 * 10 + 32)); \
- xor2(&b6, (const aes_uint128_t *) (bskey + 128 * 10 + 48)); \
- xor2(&b3, (const aes_uint128_t *) (bskey + 128 * 10 + 64)); \
- xor2(&b7, (const aes_uint128_t *) (bskey + 128 * 10 + 80)); \
- xor2(&b2, (const aes_uint128_t *) (bskey + 128 * 10 + 96)); \
- xor2(&b5, (const aes_uint128_t *) (bskey + 128 * 10 + 112))
-
-#define sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, s0, s1, s2, s3) \
- InBasisChange(b0, b1, b2, b3, b4, b5, b6, b7); \
- Inv_GF256(b6, b5, b0, b3, b7, b1, b4, b2, t0, t1, t2, t3, s0, s1, s2, s3); \
- OutBasisChange(b7, b1, b4, b2, b6, b5, b0, b3)
-
-#define InBasisChange(b0, b1, b2, b3, b4, b5, b6, b7) \
- xor2(&b5, &b6); \
- xor2(&b2, &b1); \
- xor2(&b5, &b0); \
- xor2(&b6, &b2); \
- xor2(&b3, &b0); \
- \
- xor2(&b6, &b3); \
- xor2(&b3, &b7); \
- xor2(&b3, &b4); \
- xor2(&b7, &b5); \
- xor2(&b3, &b1); \
- \
- xor2(&b4, &b5); \
- xor2(&b2, &b7); \
- xor2(&b1, &b5)
-
-#define OutBasisChange(b0, b1, b2, b3, b4, b5, b6, b7) \
- xor2(&b0, &b6); \
- xor2(&b1, &b4); \
- xor2(&b2, &b0); \
- xor2(&b4, &b6); \
- xor2(&b6, &b1); \
- \
- xor2(&b1, &b5); \
- xor2(&b5, &b3); \
- xor2(&b2, &b5); \
- xor2(&b3, &b7); \
- xor2(&b7, &b5); \
- \
- xor2(&b4, &b7)
-
-#define Mul_GF4(x0, x1, y0, y1, t0) \
- copy2(&t0, &y0); \
- xor2(&t0, &y1); \
- and2(&t0, &x0); \
- xor2(&x0, &x1); \
- and2(&x0, &y1); \
- and2(&x1, &y0); \
- xor2(&x0, &x1); \
- xor2(&x1, &t0)
-
-#define Mul_GF4_N(x0, x1, y0, y1, t0) \
- copy2(&t0, &y0); \
- xor2(&t0, &y1); \
- and2(&t0, &x0); \
- xor2(&x0, &x1); \
- and2(&x0, &y1); \
- and2(&x1, &y0); \
- xor2(&x1, &x0); \
- xor2(&x0, &t0)
-
-#define Mul_GF4_2(x0, x1, x2, x3, y0, y1, t0, t1) \
- copy2(&t0, = y0); \
- xor2(&t0, &y1); \
- copy2(&t1, &t0); \
- and2(&t0, &x0); \
- and2(&t1, &x2); \
- xor2(&x0, &x1); \
- xor2(&x2, &x3); \
- and2(&x0, &y1); \
- and2(&x2, &y1); \
- and2(&x1, &y0); \
- and2(&x3, &y0); \
- xor2(&x0, &x1); \
- xor2(&x2, &x3); \
- xor2(&x1, &t0); \
- xor2(&x3, &t1)
-
-#define Mul_GF16(x0, x1, x2, x3, y0, y1, y2, y3, t0, t1, t2, t3) \
- copy2(&t0, &x0); \
- copy2(&t1, &x1); \
- Mul_GF4(x0, x1, y0, y1, t2); \
- xor2(&t0, &x2); \
- xor2(&t1, &x3); \
- xor2(&y0, &y2); \
- xor2(&y1, &y3); \
- Mul_GF4_N(t0, t1, y0, y1, t2); \
- Mul_GF4(x2, x3, y2, y3, t3); \
- \
- xor2(&x0, &t0); \
- xor2(&x2, &t0); \
- xor2(&x1, &t1); \
- xor2(&x3, &t1)
-
-#define Mul_GF16_2(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, t0, t1, t2, \
- t3) \
- copy2(&t0, &x0); \
- copy2(&t1, &x1); \
- Mul_GF4(x0, x1, y0, y1, t2); \
- xor2(&t0, &x2); \
- xor2(&t1, &x3); \
- xor2(&y0, &y2); \
- xor2(&y1, &y3); \
- Mul_GF4_N(t0, t1, y0, y1, t3); \
- Mul_GF4(x2, x3, y2, y3, t2); \
- \
- xor2(&x0, &t0); \
- xor2(&x2, &t0); \
- xor2(&x1, &t1); \
- xor2(&x3, &t1); \
- \
- copy2(&t0, &x4); \
- copy2(&t1, &x5); \
- xor2(&t0, &x6); \
- xor2(&t1, &x7); \
- Mul_GF4_N(t0, t1, y0, y1, t3); \
- Mul_GF4(x6, x7, y2, y3, t2); \
- xor2(&y0, &y2); \
- xor2(&y1, &y3); \
- Mul_GF4(x4, x5, y0, y1, t3); \
- \
- xor2(&x4, &t0); \
- xor2(&x6, &t0); \
- xor2(&x5, &t1); \
- xor2(&x7, &t1)
-
-#define Inv_GF16(x0, x1, x2, x3, t0, t1, t2, t3) \
- copy2(&t0, &x1); \
- copy2(&t1, &x0); \
- and2(&t0, &x3); \
- or2(&t1, &x2); \
- copy2(&t2, &x1); \
- copy2(&t3, &x0); \
- or2(&t2, &x2); \
- or2(&t3, &x3); \
- xor2(&t2, &t3); \
- \
- xor2(&t0, &t2); \
- xor2(&t1, &t2); \
- \
- Mul_GF4_2(x0, x1, x2, x3, t1, t0, t2, t3)
-
-#define Inv_GF256(x0, x1, x2, x3, x4, x5, x6, x7, t0, t1, t2, t3, s0, s1, s2, \
- s3) \
- copy2(&t3, &x4); \
- copy2(&t2, &x5); \
- copy2(&t1, &x1); \
- copy2(&s1, &x7); \
- copy2(&s0, &x0); \
- \
- xor2(&t3, &x6); \
- xor2(&t2, &x7); \
- xor2(&t1, &x3); \
- xor2(&s1, &x6); \
- xor2(&s0, &x2); \
- \
- copy2(&s2, &t3); \
- copy2(&t0, &t2); \
- copy2(&s3, &t3); \
- \
- or2(&t2, &t1); \
- or2(&t3, &s0); \
- xor2(&s3, &t0); \
- and2(&s2, &s0); \
- and2(&t0, &t1); \
- xor2(&s0, &t1); \
- and2(&s3, &s0); \
- copy2(&s0, &x3); \
- xor2(&s0, &x2); \
- and2(&s1, &s0); \
- xor2(&t3, &s1); \
- xor2(&t2, &s1); \
- copy2(&s1, &x4); \
- xor2(&s1, &x5); \
- copy2(&s0, &x1); \
- copy2(&t1, &s1); \
- xor2(&s0, &x0); \
- or2(&t1, &s0); \
- and2(&s1, &s0); \
- xor2(&t0, &s1); \
- xor2(&t3, &s3); \
- xor2(&t2, &s2); \
- xor2(&t1, &s3); \
- xor2(&t0, &s2); \
- xor2(&t1, &s2); \
- copy2(&s0, &x7); \
- copy2(&s1, &x6); \
- copy2(&s2, &x5); \
- copy2(&s3, &x4); \
- and2(&s0, &x3); \
- and2(&s1, &x2); \
- and2(&s2, &x1); \
- or2(&s3, &x0); \
- xor2(&t3, &s0); \
- xor2(&t2, &s1); \
- xor2(&t1, &s2); \
- xor2(&t0, &s3); \
- \
- copy2(&s0, &t3); \
- xor2(&s0, &t2); \
- and2(&t3, &t1); \
- copy2(&s2, &t0); \
- xor2(&s2, &t3); \
- copy2(&s3, &s0); \
- and2(&s3, &s2); \
- xor2(&s3, &t2); \
- copy2(&s1, &t1); \
- xor2(&s1, &t0); \
- xor2(&t3, &t2); \
- and2(&s1, &t3); \
- xor2(&s1, &t0); \
- xor2(&t1, &s1); \
- copy2(&t2, &s2); \
- xor2(&t2, &s1); \
- and2(&t2, &t0); \
- xor2(&t1, &t2); \
- xor2(&s2, &t2); \
- and2(&s2, &s3); \
- xor2(&s2, &s0); \
- \
- Mul_GF16_2(x0, x1, x2, x3, x4, x5, x6, x7, s3, s2, s1, t1, s0, t0, t2, t3)
-
-#endif
diff --git a/src/libsodium/crypto_stream/aes128ctr/nacl/consts.h b/src/libsodium/crypto_stream/aes128ctr/nacl/consts.h
deleted file mode 100644
index 1abdd3da..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/nacl/consts.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef aes128ctr_nacl_consts_H
-#define aes128ctr_nacl_consts_H
-
-#include "int128.h"
-
-#define ROTB crypto_stream_aes128ctr_nacl_ROTB
-#define M0 crypto_stream_aes128ctr_nacl_M0
-#define EXPB0 crypto_stream_aes128ctr_nacl_EXPB0
-#define SWAP32 crypto_stream_aes128ctr_nacl_SWAP32
-#define M0SWAP crypto_stream_aes128ctr_nacl_M0SWAP
-#define SR crypto_stream_aes128ctr_nacl_SR
-#define SRM0 crypto_stream_aes128ctr_nacl_SRM0
-#define BS0 crypto_stream_aes128ctr_nacl_BS0
-#define BS1 crypto_stream_aes128ctr_nacl_BS1
-#define BS2 crypto_stream_aes128ctr_nacl_BS2
-
-extern const unsigned char ROTB[16];
-extern const unsigned char M0[16];
-extern const unsigned char EXPB0[16];
-extern const unsigned char SWAP32[16];
-extern const unsigned char M0SWAP[16];
-extern const unsigned char SR[16];
-extern const unsigned char SRM0[16];
-extern const aes_uint128_t BS0;
-extern const aes_uint128_t BS1;
-extern const aes_uint128_t BS2;
-
-#endif
diff --git a/src/libsodium/crypto_stream/aes128ctr/nacl/consts_aes128ctr.c b/src/libsodium/crypto_stream/aes128ctr/nacl/consts_aes128ctr.c
deleted file mode 100644
index 899a279b..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/nacl/consts_aes128ctr.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "consts.h"
-
-const unsigned char ROTB[16] = {
- 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08
-};
-const unsigned char M0[16] = { 0x0f, 0x0b, 0x07, 0x03, 0x0e, 0x0a, 0x06, 0x02,
- 0x0d, 0x09, 0x05, 0x01, 0x0c, 0x08, 0x04, 0x00 };
-const unsigned char EXPB0[16] = { 0x03, 0x03, 0x03, 0x03, 0x07, 0x07,
- 0x07, 0x07, 0x0b, 0x0b, 0x0b, 0x0b,
- 0x0f, 0x0f, 0x0f, 0x0f };
-
-const unsigned char SWAP32[16] = { 0x03, 0x02, 0x01, 0x00, 0x07, 0x06,
- 0x05, 0x04, 0x0b, 0x0a, 0x09, 0x08,
- 0x0f, 0x0e, 0x0d, 0x0c };
-const unsigned char M0SWAP[16] = { 0x0c, 0x08, 0x04, 0x00, 0x0d, 0x09,
- 0x05, 0x01, 0x0e, 0x0a, 0x06, 0x02,
- 0x0f, 0x0b, 0x07, 0x03 };
-const unsigned char SR[16] = { 0x01, 0x02, 0x03, 0x00, 0x06, 0x07, 0x04, 0x05,
- 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f };
-const unsigned char SRM0[16] = {
- 0x0f, 0x0a, 0x05, 0x00, 0x0e, 0x09, 0x04, 0x03,
- 0x0d, 0x08, 0x07, 0x02, 0x0c, 0x0b, 0x06, 0x01
-};
-
-const aes_uint128_t BS0 = { { 0x5555555555555555ULL, 0x5555555555555555ULL } };
-const aes_uint128_t BS1 = { { 0x3333333333333333ULL, 0x3333333333333333ULL } };
-const aes_uint128_t BS2 = { { 0x0f0f0f0f0f0f0f0fULL, 0x0f0f0f0f0f0f0f0fULL } };
diff --git a/src/libsodium/crypto_stream/aes128ctr/nacl/int128.h b/src/libsodium/crypto_stream/aes128ctr/nacl/int128.h
deleted file mode 100644
index cf002b76..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/nacl/int128.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef aes128ctr_nacl_int128_H
-#define aes128ctr_nacl_int128_H
-
-#include
-
-#include "common.h"
-
-typedef union {
- uint64_t u64[2];
- uint32_t u32[4];
- uint8_t u8[16];
-} aes_uint128_t;
-
-#define xor2 crypto_stream_aes128ctr_nacl_xor2
-void xor2(aes_uint128_t *r, const aes_uint128_t *x);
-
-#define and2 crypto_stream_aes128ctr_nacl_and2
-void and2(aes_uint128_t *r, const aes_uint128_t *x);
-
-#define or2 crypto_stream_aes128ctr_nacl_or2
-void or2(aes_uint128_t *r, const aes_uint128_t *x);
-
-#define copy2 crypto_stream_aes128ctr_nacl_copy2
-void copy2(aes_uint128_t *r, const aes_uint128_t *x);
-
-#define shufb crypto_stream_aes128ctr_nacl_shufb
-void shufb(aes_uint128_t *r, const unsigned char *l);
-
-#define shufd crypto_stream_aes128ctr_nacl_shufd
-void shufd(aes_uint128_t *r, const aes_uint128_t *x, const unsigned int c);
-
-#define rshift32_littleendian crypto_stream_aes128ctr_nacl_rshift32_littleendian
-void rshift32_littleendian(aes_uint128_t *r, const unsigned int n);
-
-#define rshift64_littleendian crypto_stream_aes128ctr_nacl_rshift64_littleendian
-void rshift64_littleendian(aes_uint128_t *r, const unsigned int n);
-
-#define lshift64_littleendian crypto_stream_aes128ctr_nacl_lshift64_littleendian
-void lshift64_littleendian(aes_uint128_t *r, const unsigned int n);
-
-#define toggle crypto_stream_aes128ctr_nacl_toggle
-void toggle(aes_uint128_t *r);
-
-#define xor_rcon crypto_stream_aes128ctr_nacl_xor_rcon
-void xor_rcon(aes_uint128_t *r);
-
-#define add_uint32_big crypto_stream_aes128ctr_nacl_add_uint32_big
-void add_uint32_big(aes_uint128_t *r, uint32_t x);
-
-#endif
diff --git a/src/libsodium/crypto_stream/aes128ctr/nacl/int128_aes128ctr.c b/src/libsodium/crypto_stream/aes128ctr/nacl/int128_aes128ctr.c
deleted file mode 100644
index 5824eb79..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/nacl/int128_aes128ctr.c
+++ /dev/null
@@ -1,149 +0,0 @@
-#include
-
-#include "common.h"
-#include "int128.h"
-
-void
-xor2(aes_uint128_t *r, const aes_uint128_t *x)
-{
- r->u64[0] ^= x->u64[0];
- r->u64[1] ^= x->u64[1];
-}
-
-void
-and2(aes_uint128_t *r, const aes_uint128_t *x)
-{
- r->u64[0] &= x->u64[0];
- r->u64[1] &= x->u64[1];
-}
-
-void
-or2(aes_uint128_t *r, const aes_uint128_t *x)
-{
- r->u64[0] |= x->u64[0];
- r->u64[1] |= x->u64[1];
-}
-
-void
-copy2(aes_uint128_t *r, const aes_uint128_t *x)
-{
- r->u64[0] = x->u64[0];
- r->u64[1] = x->u64[1];
-}
-
-void
-shufb(aes_uint128_t *r, const unsigned char *l)
-{
- aes_uint128_t t;
- uint8_t *ct;
- uint8_t *cr;
-
- copy2(&t, r);
- cr = r->u8;
- ct = t.u8;
- cr[0] = ct[l[0]];
- cr[1] = ct[l[1]];
- cr[2] = ct[l[2]];
- cr[3] = ct[l[3]];
- cr[4] = ct[l[4]];
- cr[5] = ct[l[5]];
- cr[6] = ct[l[6]];
- cr[7] = ct[l[7]];
- cr[8] = ct[l[8]];
- cr[9] = ct[l[9]];
- cr[10] = ct[l[10]];
- cr[11] = ct[l[11]];
- cr[12] = ct[l[12]];
- cr[13] = ct[l[13]];
- cr[14] = ct[l[14]];
- cr[15] = ct[l[15]];
-}
-
-void
-shufd(aes_uint128_t *r, const aes_uint128_t *x, const unsigned int c)
-{
- aes_uint128_t t;
-
- t.u32[0] = x->u32[c >> 0 & 3];
- t.u32[1] = x->u32[c >> 2 & 3];
- t.u32[2] = x->u32[c >> 4 & 3];
- t.u32[3] = x->u32[c >> 6 & 3];
- copy2(r, &t);
-}
-
-void
-rshift32_littleendian(aes_uint128_t *r, const unsigned int n)
-{
- unsigned char *rp = (unsigned char *) r;
- uint32_t t;
-
- t = LOAD32_LE(rp);
- t >>= n;
- STORE32_LE(rp, t);
- t = LOAD32_LE(rp + 4);
- t >>= n;
- STORE32_LE(rp + 4, t);
- t = LOAD32_LE(rp + 8);
- t >>= n;
- STORE32_LE(rp + 8, t);
- t = LOAD32_LE(rp + 12);
- t >>= n;
- STORE32_LE(rp + 12, t);
-}
-
-void
-rshift64_littleendian(aes_uint128_t *r, const unsigned int n)
-{
- unsigned char *rp = (unsigned char *) r;
- uint64_t t;
-
- t = LOAD64_LE(rp);
- t >>= n;
- STORE64_LE(rp, t);
- t = LOAD64_LE(rp + 8);
- t >>= n;
- STORE64_LE(rp + 8, t);
-}
-
-void
-lshift64_littleendian(aes_uint128_t *r, const unsigned int n)
-{
- unsigned char *rp = (unsigned char *) r;
- uint64_t t;
-
- t = LOAD64_LE(rp);
- t <<= n;
- STORE64_LE(rp, t);
- t = LOAD64_LE(rp + 8);
- t <<= n;
- STORE64_LE(rp + 8, t);
-}
-
-void
-toggle(aes_uint128_t *r)
-{
- r->u64[0] ^= 0xffffffffffffffffULL;
- r->u64[1] ^= 0xffffffffffffffffULL;
-}
-
-void
-xor_rcon(aes_uint128_t *r)
-{
- unsigned char *rp = (unsigned char *) r;
- uint32_t t;
-
- t = LOAD32_LE(rp + 12);
- t ^= 0xffffffff;
- STORE32_LE(rp + 12, t);
-}
-
-void
-add_uint32_big(aes_uint128_t *r, uint32_t x)
-{
- unsigned char *rp = (unsigned char *) r;
- uint32_t t;
-
- t = LOAD32_LE(rp + 12);
- t += x;
- STORE32_LE(rp + 12, t);
-}
diff --git a/src/libsodium/crypto_stream/aes128ctr/nacl/stream_aes128ctr_nacl.c b/src/libsodium/crypto_stream/aes128ctr/nacl/stream_aes128ctr_nacl.c
deleted file mode 100644
index 0d8e0041..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/nacl/stream_aes128ctr_nacl.c
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#include "crypto_stream_aes128ctr.h"
-
-#ifdef __GNUC__
-# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-
-int
-crypto_stream_aes128ctr(unsigned char *out, unsigned long long outlen,
- const unsigned char *n, const unsigned char *k)
-{
- unsigned char d[crypto_stream_aes128ctr_BEFORENMBYTES];
-
- crypto_stream_aes128ctr_beforenm(d, k);
- crypto_stream_aes128ctr_afternm(out, outlen, n, d);
-
- return 0;
-}
-
-int
-crypto_stream_aes128ctr_xor(unsigned char *out, const unsigned char *in,
- unsigned long long inlen, const unsigned char *n,
- const unsigned char *k)
-{
- unsigned char d[crypto_stream_aes128ctr_BEFORENMBYTES];
-
- crypto_stream_aes128ctr_beforenm(d, k);
- crypto_stream_aes128ctr_xor_afternm(out, in, inlen, n, d);
-
- return 0;
-}
diff --git a/src/libsodium/crypto_stream/aes128ctr/nacl/xor_afternm_aes128ctr.c b/src/libsodium/crypto_stream/aes128ctr/nacl/xor_afternm_aes128ctr.c
deleted file mode 100644
index 4e8a3926..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/nacl/xor_afternm_aes128ctr.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* Author: Peter Schwabe, ported from an assembly implementation by Emilia
- * Käsper
- * Date: 2009-03-19
- * Public domain */
-
-#include "common.h"
-#include "consts.h"
-#include "crypto_stream_aes128ctr.h"
-#include "int128.h"
-
-int
-crypto_stream_aes128ctr_xor_afternm(unsigned char *out, const unsigned char *in,
- unsigned long long len,
- const unsigned char *nonce,
- const unsigned char *c)
-{
- aes_uint128_t xmm0;
- aes_uint128_t xmm1;
- aes_uint128_t xmm2;
- aes_uint128_t xmm3;
- aes_uint128_t xmm4;
- aes_uint128_t xmm5;
- aes_uint128_t xmm6;
- aes_uint128_t xmm7;
- aes_uint128_t xmm8;
- aes_uint128_t xmm9;
- aes_uint128_t xmm10;
- aes_uint128_t xmm11;
- aes_uint128_t xmm12;
- aes_uint128_t xmm13;
- aes_uint128_t xmm14;
- aes_uint128_t xmm15;
- aes_uint128_t nonce_stack;
- unsigned long long lensav;
- unsigned char bl[128];
- unsigned char *blp;
- unsigned char *np;
- unsigned char b;
- uint32_t tmp;
-
- /* Copy nonce on the stack */
- copy2(&nonce_stack, (const aes_uint128_t *) (nonce + 0));
- np = (unsigned char *) &nonce_stack;
-
-enc_block:
-
- xmm0 = *(aes_uint128_t *) (np + 0);
- copy2(&xmm1, &xmm0);
- shufb(&xmm1, SWAP32);
- copy2(&xmm2, &xmm1);
- copy2(&xmm3, &xmm1);
- copy2(&xmm4, &xmm1);
- copy2(&xmm5, &xmm1);
- copy2(&xmm6, &xmm1);
- copy2(&xmm7, &xmm1);
-
- add_uint32_big(&xmm1, 1);
- add_uint32_big(&xmm2, 2);
- add_uint32_big(&xmm3, 3);
- add_uint32_big(&xmm4, 4);
- add_uint32_big(&xmm5, 5);
- add_uint32_big(&xmm6, 6);
- add_uint32_big(&xmm7, 7);
-
- shufb(&xmm0, M0);
- shufb(&xmm1, M0SWAP);
- shufb(&xmm2, M0SWAP);
- shufb(&xmm3, M0SWAP);
- shufb(&xmm4, M0SWAP);
- shufb(&xmm5, M0SWAP);
- shufb(&xmm6, M0SWAP);
- shufb(&xmm7, M0SWAP);
-
- bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, xmm8);
-
- aesround(1, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- aesround(2, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
- aesround(3, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- aesround(4, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
- aesround(5, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- aesround(6, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
- aesround(7, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- aesround(8, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0,
- xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
- aesround(9, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
- xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, c);
- lastround(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1,
- xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, c);
-
- bitslice(xmm13, xmm10, xmm15, xmm11, xmm14, xmm12, xmm9, xmm8, xmm0);
-
- if (len < 128) {
- goto partial;
- }
- if (len == 128) {
- goto full;
- }
- tmp = LOAD32_BE(np + 12);
- tmp += 8;
- STORE32_BE(np + 12, tmp);
-
- xor2(&xmm8, (const aes_uint128_t *) (in + 0));
- xor2(&xmm9, (const aes_uint128_t *) (in + 16));
- xor2(&xmm12, (const aes_uint128_t *) (in + 32));
- xor2(&xmm14, (const aes_uint128_t *) (in + 48));
- xor2(&xmm11, (const aes_uint128_t *) (in + 64));
- xor2(&xmm15, (const aes_uint128_t *) (in + 80));
- xor2(&xmm10, (const aes_uint128_t *) (in + 96));
- xor2(&xmm13, (const aes_uint128_t *) (in + 112));
-
- *(aes_uint128_t *) (out + 0) = xmm8;
- *(aes_uint128_t *) (out + 16) = xmm9;
- *(aes_uint128_t *) (out + 32) = xmm12;
- *(aes_uint128_t *) (out + 48) = xmm14;
- *(aes_uint128_t *) (out + 64) = xmm11;
- *(aes_uint128_t *) (out + 80) = xmm15;
- *(aes_uint128_t *) (out + 96) = xmm10;
- *(aes_uint128_t *) (out + 112) = xmm13;
-
- len -= 128;
- in += 128;
- out += 128;
-
- goto enc_block;
-
-partial:
-
- lensav = len;
- len >>= 4;
-
- tmp = LOAD32_BE(np + 12);
- tmp += len;
- STORE32_BE(np + 12, tmp);
-
- blp = bl;
-
- *(aes_uint128_t *) (blp + 0) = xmm8;
- *(aes_uint128_t *) (blp + 16) = xmm9;
- *(aes_uint128_t *) (blp + 32) = xmm12;
- *(aes_uint128_t *) (blp + 48) = xmm14;
- *(aes_uint128_t *) (blp + 64) = xmm11;
- *(aes_uint128_t *) (blp + 80) = xmm15;
- *(aes_uint128_t *) (blp + 96) = xmm10;
- *(aes_uint128_t *) (blp + 112) = xmm13;
-
-bytes:
-
- if (lensav == 0) {
- goto end;
- }
- b = blp[0]; /* clang false positive */
- b ^= *(const unsigned char *) (in + 0);
- *(unsigned char *) (out + 0) = b;
-
- blp += 1;
- in += 1;
- out += 1;
- lensav -= 1;
-
- goto bytes;
-
-full:
-
- tmp = LOAD32_BE(np + 12);
- tmp += 8;
- STORE32_BE(np + 12, tmp);
-
- xor2(&xmm8, (const aes_uint128_t *) (in + 0));
- xor2(&xmm9, (const aes_uint128_t *) (in + 16));
- xor2(&xmm12, (const aes_uint128_t *) (in + 32));
- xor2(&xmm14, (const aes_uint128_t *) (in + 48));
- xor2(&xmm11, (const aes_uint128_t *) (in + 64));
- xor2(&xmm15, (const aes_uint128_t *) (in + 80));
- xor2(&xmm10, (const aes_uint128_t *) (in + 96));
- xor2(&xmm13, (const aes_uint128_t *) (in + 112));
-
- *(aes_uint128_t *) (out + 0) = xmm8;
- *(aes_uint128_t *) (out + 16) = xmm9;
- *(aes_uint128_t *) (out + 32) = xmm12;
- *(aes_uint128_t *) (out + 48) = xmm14;
- *(aes_uint128_t *) (out + 64) = xmm11;
- *(aes_uint128_t *) (out + 80) = xmm15;
- *(aes_uint128_t *) (out + 96) = xmm10;
- *(aes_uint128_t *) (out + 112) = xmm13;
-
-end:
- return 0;
-}
diff --git a/src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr.c b/src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr.c
deleted file mode 100644
index fbd7afc9..00000000
--- a/src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "crypto_stream_aes128ctr.h"
-
-size_t
-crypto_stream_aes128ctr_keybytes(void)
-{
- return crypto_stream_aes128ctr_KEYBYTES;
-}
-
-size_t
-crypto_stream_aes128ctr_noncebytes(void)
-{
- return crypto_stream_aes128ctr_NONCEBYTES;
-}
-
-size_t
-crypto_stream_aes128ctr_beforenmbytes(void)
-{
- return crypto_stream_aes128ctr_BEFORENMBYTES;
-}
diff --git a/src/libsodium/include/Makefile.am b/src/libsodium/include/Makefile.am
index 06f3f4a4..4a373307 100644
--- a/src/libsodium/include/Makefile.am
+++ b/src/libsodium/include/Makefile.am
@@ -43,7 +43,6 @@ SODIUM_EXPORT = \
sodium/crypto_sign_ed25519.h \
sodium/crypto_sign_edwards25519sha512batch.h \
sodium/crypto_stream.h \
- sodium/crypto_stream_aes128ctr.h \
sodium/crypto_stream_chacha20.h \
sodium/crypto_stream_salsa20.h \
sodium/crypto_stream_salsa2012.h \
diff --git a/src/libsodium/include/sodium.h b/src/libsodium/include/sodium.h
index 8c3e8bc7..d1298c05 100644
--- a/src/libsodium/include/sodium.h
+++ b/src/libsodium/include/sodium.h
@@ -60,7 +60,6 @@
# include "sodium/crypto_box_curve25519xchacha20poly1305.h"
# include "sodium/crypto_secretbox_xchacha20poly1305.h"
# include "sodium/crypto_pwhash_scryptsalsa208sha256.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"
diff --git a/src/libsodium/include/sodium/crypto_stream_aes128ctr.h b/src/libsodium/include/sodium/crypto_stream_aes128ctr.h
deleted file mode 100644
index a65f1915..00000000
--- a/src/libsodium/include/sodium/crypto_stream_aes128ctr.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef crypto_stream_aes128ctr_H
-#define crypto_stream_aes128ctr_H
-
-/*
- * WARNING: This is just a stream cipher. It is NOT authenticated encryption.
- * While it provides some protection against eavesdropping, it does NOT
- * provide any security against active attacks.
- * Unless you know what you're doing, what you are looking for is probably
- * the crypto_box functions.
- */
-
-#include
-#include "export.h"
-
-#ifdef __cplusplus
-# ifdef __GNUC__
-# pragma GCC diagnostic ignored "-Wlong-long"
-# endif
-extern "C" {
-#endif
-
-#define crypto_stream_aes128ctr_KEYBYTES 16U
-SODIUM_EXPORT
-size_t crypto_stream_aes128ctr_keybytes(void);
-
-#define crypto_stream_aes128ctr_NONCEBYTES 16U
-SODIUM_EXPORT
-size_t crypto_stream_aes128ctr_noncebytes(void);
-
-#define crypto_stream_aes128ctr_BEFORENMBYTES 1408U
-SODIUM_EXPORT
-size_t crypto_stream_aes128ctr_beforenmbytes(void);
-
-#define crypto_stream_aes128ctr_SIZE_MAX \
- SODIUM_MIN(SODIUM_SIZE_MAX, 16ULL * (1ULL << 32))
-
-SODIUM_EXPORT
-int crypto_stream_aes128ctr(unsigned char *out, unsigned long long outlen,
- const unsigned char *n, const unsigned char *k)
- __attribute__ ((deprecated));
-
-SODIUM_EXPORT
-int crypto_stream_aes128ctr_xor(unsigned char *out, const unsigned char *in,
- unsigned long long inlen, const unsigned char *n,
- const unsigned char *k)
- __attribute__ ((deprecated));
-
-SODIUM_EXPORT
-int crypto_stream_aes128ctr_beforenm(unsigned char *c, const unsigned char *k)
- __attribute__ ((deprecated));
-
-SODIUM_EXPORT
-int crypto_stream_aes128ctr_afternm(unsigned char *out, unsigned long long len,
- const unsigned char *nonce, const unsigned char *c)
- __attribute__ ((deprecated));
-
-SODIUM_EXPORT
-int crypto_stream_aes128ctr_xor_afternm(unsigned char *out, const unsigned char *in,
- unsigned long long len,
- const unsigned char *nonce,
- const unsigned char *c)
- __attribute__ ((deprecated));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif