Browse Source

Try to rename internal symbols that were visible in static libraries

Fixes #839
master
Frank Denis 5 years ago
parent
commit
2dd3b91628
  1. 4
      .gitignore
  2. 1
      .travis.yml
  3. 2
      builds/msvc/vs2010/libsodium/libsodium.vcxproj
  4. 6
      builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
  5. 2
      builds/msvc/vs2012/libsodium/libsodium.vcxproj
  6. 6
      builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
  7. 2
      builds/msvc/vs2013/libsodium/libsodium.vcxproj
  8. 6
      builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
  9. 2
      builds/msvc/vs2015/libsodium/libsodium.vcxproj
  10. 6
      builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
  11. 2
      builds/msvc/vs2017/libsodium/libsodium.vcxproj
  12. 6
      builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
  13. 2
      builds/msvc/vs2019/libsodium/libsodium.vcxproj
  14. 6
      builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters
  15. 2
      libsodium.vcxproj
  16. 6
      libsodium.vcxproj.filters
  17. 4
      src/libsodium/Makefile.am
  18. 2
      src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h
  19. 2
      src/libsodium/crypto_core/ed25519/ref10/fe_51/fe.h
  20. 1
      src/libsodium/crypto_generichash/blake2b/ref/blake2.h
  21. 1
      src/libsodium/crypto_pwhash/argon2/argon2-core.h
  22. 1
      src/libsodium/crypto_pwhash/argon2/argon2-encoding.h
  23. 2
      src/libsodium/crypto_pwhash/argon2/argon2.h
  24. 1
      src/libsodium/crypto_pwhash/argon2/blake2b-long.h
  25. 2
      src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h
  26. 1
      src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h
  27. 28
      src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h
  28. 2
      src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h
  29. 18
      src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h
  30. 4
      src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h
  31. 4
      src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h
  32. 1
      src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S
  33. 2
      src/libsodium/crypto_sign/ed25519/ref10/sign_ed25519_ref10.h
  34. 2
      src/libsodium/crypto_stream/salsa20/stream_salsa20.h
  35. 2
      src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm.S
  36. 10
      src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm_namespace.h
  37. 1
      src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.h
  38. 2
      src/libsodium/include/sodium/private/chacha20_ietf_ext.h
  39. 2
      src/libsodium/include/sodium/private/common.h
  40. 2
      src/libsodium/include/sodium/private/ed25519_ref10.h
  41. 1
      src/libsodium/include/sodium/private/ed25519_ref10_fe_25_5.h
  42. 1
      src/libsodium/include/sodium/private/ed25519_ref10_fe_51.h
  43. 2
      src/libsodium/include/sodium/private/implementations.h
  44. 2
      src/libsodium/include/sodium/private/mutex.h
  45. 81
      src/libsodium/include/sodium/private/quirks.h
  46. 179
      test/rename-globals.sh
  47. 691
      test/symbols/all-symbols.txt

4
.gitignore

@ -43,6 +43,9 @@ configure
configure.lineno
coverage.info
depcomp
test/symbols/all-host-symbols.txt
test/symbols/internal-host-symbols.txt
test/symbols/internal-symbols.txt
install-sh
libsodium-*.tar.bz2
libsodium-*.tar.gz
@ -74,6 +77,7 @@ man/*.html
man/Makefile.in
missing
src/libsodium/*.def
src/libsodium/include/sodium/private/quirks.h.old
src/libsodium/include/sodium/version.h
stamp-*
test-driver

1
.travis.yml

@ -28,6 +28,7 @@ script:
- make check
- ( echo '#include <sodium.h>' ; echo 'int main(void) { return sodium_init(); }' ) > /tmp/main.c && gcc -DDEV_MODE=1 -Isrc/libsodium/include -Isrc/libsodium/include/sodium $(find src -name '*.c' -o -name '*.S') /tmp/main.c
- make distclean > /dev/null
- test/rename-globals.sh
after_success:
- env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --host=powerpc-linux-gnu

2
builds/msvc/vs2010/libsodium/libsodium.vcxproj

@ -256,6 +256,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
@ -306,6 +307,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />

6
builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters

@ -557,6 +557,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +710,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h">
<Filter>crypto_stream\salsa20\xmm6int</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>

2
builds/msvc/vs2012/libsodium/libsodium.vcxproj

@ -256,6 +256,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
@ -306,6 +307,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />

6
builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters

@ -557,6 +557,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +710,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h">
<Filter>crypto_stream\salsa20\xmm6int</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>

2
builds/msvc/vs2013/libsodium/libsodium.vcxproj

@ -256,6 +256,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
@ -306,6 +307,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />

6
builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters

@ -557,6 +557,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +710,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h">
<Filter>crypto_stream\salsa20\xmm6int</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>

2
builds/msvc/vs2015/libsodium/libsodium.vcxproj

@ -256,6 +256,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
@ -306,6 +307,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />

6
builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters

@ -557,6 +557,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +710,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h">
<Filter>crypto_stream\salsa20\xmm6int</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>

2
builds/msvc/vs2017/libsodium/libsodium.vcxproj

@ -256,6 +256,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
@ -306,6 +307,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />

6
builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters

@ -557,6 +557,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +710,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h">
<Filter>crypto_stream\salsa20\xmm6int</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>

2
builds/msvc/vs2019/libsodium/libsodium.vcxproj

@ -256,6 +256,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\sse2_64_32.h" />
@ -306,6 +307,7 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="..\..\..\..\src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />

6
builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters

@ -557,6 +557,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\quirks.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>include\sodium\private</Filter>
</ClInclude>
@ -707,6 +710,9 @@
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h">
<Filter>crypto_stream\salsa20\xmm6int</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>crypto_stream\salsa20\xmm6</Filter>
</ClInclude>

2
libsodium.vcxproj

@ -494,6 +494,7 @@
<ClInclude Include="src\libsodium\include\sodium\crypto_generichash_blake2b.h" />
<ClInclude Include="src\libsodium\include\sodium\crypto_sign_edwards25519sha512batch.h" />
<ClInclude Include="src\libsodium\include\sodium\private\ed25519_ref10.h" />
<ClInclude Include="src\libsodium\include\sodium\private\quirks.h" />
<ClInclude Include="src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h" />
<ClInclude Include="src\libsodium\include\sodium\private\ed25519_ref10_fe_51.h" />
<ClInclude Include="src\libsodium\include\sodium\private\sse2_64_32.h" />
@ -544,6 +545,7 @@
<ClInclude Include="src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-avx2.h" />
<ClInclude Include="src\libsodium\crypto_stream\salsa20\xmm6int\u8.h" />
<ClInclude Include="src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h" />
<ClInclude Include="src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h" />
<ClInclude Include="src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h" />
<ClInclude Include="src\libsodium\crypto_core\ed25519\ref10\fe_25_5\constants.h" />
<ClInclude Include="src\libsodium\crypto_core\ed25519\ref10\fe_25_5\fe.h" />

6
libsodium.vcxproj.filters

@ -548,6 +548,9 @@
<ClInclude Include="src\libsodium\include\sodium\private\ed25519_ref10.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\libsodium\include\sodium\private\quirks.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\libsodium\include\sodium\private\ed25519_ref10_fe_25_5.h">
<Filter>Header Files</Filter>
</ClInclude>
@ -698,6 +701,9 @@
<ClInclude Include="src\libsodium\crypto_stream\salsa20\xmm6int\salsa20_xmm6int-sse2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6-asm_namespace.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\libsodium\crypto_stream\salsa20\xmm6\salsa20_xmm6.h">
<Filter>Header Files</Filter>
</ClInclude>

4
src/libsodium/Makefile.am

@ -88,6 +88,7 @@ libsodium_la_SOURCES = \
include/sodium/private/implementations.h \
include/sodium/private/mutex.h \
include/sodium/private/sse2_64_32.h \
include/sodium/private/quirks.h \
randombytes/randombytes.c \
sodium/codecs.c \
sodium/core.c \
@ -115,7 +116,8 @@ if HAVE_AMD64_ASM
libsodium_la_SOURCES += \
crypto_stream/salsa20/xmm6/salsa20_xmm6-asm.S \
crypto_stream/salsa20/xmm6/salsa20_xmm6.c \
crypto_stream/salsa20/xmm6/salsa20_xmm6.h
crypto_stream/salsa20/xmm6/salsa20_xmm6.h \
crypto_stream/salsa20/xmm6/salsa20_xmm6-asm_namespace.h
else
libsodium_la_SOURCES += \
crypto_stream/salsa20/ref/salsa20_ref.c \

2
src/libsodium/crypto_core/ed25519/ref10/fe_25_5/fe.h

@ -1,3 +1,5 @@
#include "private/quirks.h"
/*
Ignores top bit of h.
*/

2
src/libsodium/crypto_core/ed25519/ref10/fe_51/fe.h

@ -1,3 +1,5 @@
#include "private/quirks.h"
/*
Ignores top bit of h.
*/

1
src/libsodium/crypto_generichash/blake2b/ref/blake2.h

@ -22,6 +22,7 @@
#include "crypto_generichash_blake2b.h"
#include "export.h"
#include "private/quirks.h"
enum blake2b_constant {
BLAKE2B_BLOCKBYTES = 128,

1
src/libsodium/crypto_pwhash/argon2/argon2-core.h

@ -17,6 +17,7 @@
#include <string.h>
#include "argon2.h"
#include "private/quirks.h"
/*************************Argon2 internal
* constants**************************************************/

1
src/libsodium/crypto_pwhash/argon2/argon2-encoding.h

@ -2,6 +2,7 @@
#define argon2_encoding_H
#include "argon2.h"
#include "private/quirks.h"
/*
* encode an Argon2 hash string into the provided buffer. 'dst_len'

2
src/libsodium/crypto_pwhash/argon2/argon2.h

@ -16,6 +16,8 @@
#include <stddef.h>
#include <stdint.h>
#include "private/quirks.h"
/*
* Argon2 input parameter restrictions
*/

1
src/libsodium/crypto_pwhash/argon2/blake2b-long.h

@ -2,6 +2,7 @@
#define blake2b_long_H
#include <stddef.h>
#include "private/quirks.h"
int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen);

2
src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h

@ -34,6 +34,8 @@
#include <stddef.h>
#include <stdint.h>
#include "private/quirks.h"
#if SIZE_MAX > 0xffffffffULL
#define ARCH_BITS 64
#else

1
src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h

@ -33,6 +33,7 @@
#include <sys/types.h>
#include "crypto_auth_hmacsha256.h"
#include "private/quirks.h"
/**
* escrypt_PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, c, buf, dkLen):

28
src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h

@ -1,20 +1,20 @@
#ifndef consts_namespace_H
#define consts_namespace_H
#define v0_0 crypto_scalarmult_curve25519_sandy2x_v0_0
#define v1_0 crypto_scalarmult_curve25519_sandy2x_v1_0
#define v2_1 crypto_scalarmult_curve25519_sandy2x_v2_1
#define v9_0 crypto_scalarmult_curve25519_sandy2x_v9_0
#define v9_9 crypto_scalarmult_curve25519_sandy2x_v9_9
#define v19_19 crypto_scalarmult_curve25519_sandy2x_v19_19
#define v38_1 crypto_scalarmult_curve25519_sandy2x_v38_1
#define v38_38 crypto_scalarmult_curve25519_sandy2x_v38_38
#define v121666_121666 crypto_scalarmult_curve25519_sandy2x_v121666_121666
#define m25 crypto_scalarmult_curve25519_sandy2x_m25
#define m26 crypto_scalarmult_curve25519_sandy2x_m26
#define subc0 crypto_scalarmult_curve25519_sandy2x_subc0
#define subc2 crypto_scalarmult_curve25519_sandy2x_subc2
#define REDMASK51 crypto_scalarmult_curve25519_sandy2x_REDMASK51
#define v0_0 _sodium_scalarmult_curve25519_sandy2x_v0_0
#define v1_0 _sodium_scalarmult_curve25519_sandy2x_v1_0
#define v2_1 _sodium_scalarmult_curve25519_sandy2x_v2_1
#define v9_0 _sodium_scalarmult_curve25519_sandy2x_v9_0
#define v9_9 _sodium_scalarmult_curve25519_sandy2x_v9_9
#define v19_19 _sodium_scalarmult_curve25519_sandy2x_v19_19
#define v38_1 _sodium_scalarmult_curve25519_sandy2x_v38_1
#define v38_38 _sodium_scalarmult_curve25519_sandy2x_v38_38
#define v121666_121666 _sodium_scalarmult_curve25519_sandy2x_v121666_121666
#define m25 _sodium_scalarmult_curve25519_sandy2x_m25
#define m26 _sodium_scalarmult_curve25519_sandy2x_m26
#define subc0 _sodium_scalarmult_curve25519_sandy2x_subc0
#define subc2 _sodium_scalarmult_curve25519_sandy2x_subc2
#define REDMASK51 _sodium_scalarmult_curve25519_sandy2x_REDMASK51
#endif /* ifndef consts_namespace_H */

2
src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h

@ -19,7 +19,7 @@ t[0]+2^26 t[1]+2^51 t[2]+2^77 t[3]+2^102 t[4]+...+2^230 t[9].
Bounds on each t[i] vary depending on context.
*/
#define fe_frombytes crypto_scalarmult_curve25519_sandy2x_fe_frombytes
#define fe_frombytes _sodium_scalarmult_curve25519_sandy2x_fe_frombytes
extern void fe_frombytes(fe, const unsigned char *);

18
src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h

@ -1,16 +1,16 @@
#ifndef fe51_namespace_H
#define fe51_namespace_H
#define fe51 crypto_scalarmult_curve25519_sandy2x_fe51
#define _fe51 _crypto_scalarmult_curve25519_sandy2x_fe51
#define fe51_pack crypto_scalarmult_curve25519_sandy2x_fe51_pack
#define _fe51_pack _crypto_scalarmult_curve25519_sandy2x_fe51_pack
#define fe51_mul crypto_scalarmult_curve25519_sandy2x_fe51_mul
#define _fe51_mul _crypto_scalarmult_curve25519_sandy2x_fe51_mul
#define fe51_nsquare crypto_scalarmult_curve25519_sandy2x_fe51_nsquare
#define _fe51_nsquare _crypto_scalarmult_curve25519_sandy2x_fe51_nsquare
#define fe51 _sodium_scalarmult_curve25519_sandy2x_fe51
#define _fe51 __sodium_scalarmult_curve25519_sandy2x_fe51
#define fe51_pack _sodium_scalarmult_curve25519_sandy2x_fe51_pack
#define _fe51_pack __sodium_scalarmult_curve25519_sandy2x_fe51_pack
#define fe51_mul _sodium_scalarmult_curve25519_sandy2x_fe51_mul
#define _fe51_mul __sodium_scalarmult_curve25519_sandy2x_fe51_mul
#define fe51_nsquare _sodium_scalarmult_curve25519_sandy2x_fe51_nsquare
#define _fe51_nsquare __sodium_scalarmult_curve25519_sandy2x_fe51_nsquare
#define fe51_invert crypto_scalarmult_curve25519_sandy2x_fe51_invert
#define fe51_invert _sodium_scalarmult_curve25519_sandy2x_fe51_invert
#endif /* ifndef fe51_namespace_H */

4
src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h

@ -1,8 +1,8 @@
#ifndef ladder_base_namespace_H
#define ladder_base_namespace_H
#define ladder_base crypto_scalarmult_curve25519_sandy2x_ladder_base
#define _ladder_base _crypto_scalarmult_curve25519_sandy2x_ladder_base
#define ladder_base _sodium_scalarmult_curve25519_sandy2x_ladder_base
#define _ladder_base __sodium_scalarmult_curve25519_sandy2x_ladder_base
#endif /* ifndef ladder_base_namespace_H */

4
src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h

@ -1,8 +1,8 @@
#ifndef ladder_namespace_H
#define ladder_namespace_H
#define ladder crypto_scalarmult_curve25519_sandy2x_ladder
#define _ladder _crypto_scalarmult_curve25519_sandy2x_ladder
#define ladder _sodium_scalarmult_curve25519_sandy2x_ladder
#define _ladder __sodium_scalarmult_curve25519_sandy2x_ladder
#endif /* ifndef ladder_namespace_H */

1
src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S

@ -1,4 +1,3 @@
#ifdef HAVE_AVX_ASM
#define IN_SANDY2X

2
src/libsodium/crypto_sign/ed25519/ref10/sign_ed25519_ref10.h

@ -1,6 +1,8 @@
#ifndef sign_ed25519_ref10_H
#define sign_ed25519_ref10_H
#include "private/quirks.h"
void _crypto_sign_ed25519_ref10_hinit(crypto_hash_sha512_state *hs,
int prehashed);

2
src/libsodium/crypto_stream/salsa20/stream_salsa20.h

@ -4,6 +4,8 @@
#include <stdint.h>
#include "private/quirks.h"
typedef struct crypto_stream_salsa20_implementation {
int (*stream)(unsigned char *c, unsigned long long clen,
const unsigned char *n, const unsigned char *k);

2
src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm.S

@ -1,5 +1,7 @@
#ifdef HAVE_AMD64_ASM
#include "salsa20_xmm6-asm_namespace.h"
.text
.p2align 5

10
src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6-asm_namespace.h

@ -0,0 +1,10 @@
#ifndef salsa20_xmm6_asm_namespace_H
#define salsa20_xmm6_asm_namespace_H
#define stream_salsa20_xmm6 _sodium_stream_salsa20_xmm6
#define _stream_salsa20_xmm6 __sodium_stream_salsa20_xmm6
#define stream_salsa20_xmm6_xor_ic _sodium_stream_salsa20_xmm6_xor_ic
#define _stream_salsa20_xmm6_xor_ic __sodium_stream_salsa20_xmm6_xor_ic
#endif

1
src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.h

@ -3,6 +3,7 @@
#include "../stream_salsa20.h"
#include "crypto_stream_salsa20.h"
#include "salsa20_xmm6-asm_namespace.h"
extern struct crypto_stream_salsa20_implementation
crypto_stream_salsa20_xmm6_implementation;

2
src/libsodium/include/sodium/private/chacha20_ietf_ext.h

@ -3,6 +3,8 @@
#include <stdint.h>
#include "private/quirks.h"
/* The ietf_ext variant allows the internal counter to overflow into the IV */
int crypto_stream_chacha20_ietf_ext(unsigned char *c, unsigned long long clen,

2
src/libsodium/include/sodium/private/common.h

@ -20,6 +20,8 @@
#include <stdlib.h>
#include <string.h>
#include "private/quirks.h"
#define COMPILER_ASSERT(X) (void) sizeof(char[(X) ? 1 : -1])
#ifdef HAVE_TI_MODE

2
src/libsodium/include/sodium/private/ed25519_ref10.h

@ -4,6 +4,8 @@
#include <stddef.h>
#include <stdint.h>
#include "private/quirks.h"
/*
fe means field element.
Here the field is \Z/(2^255-19).

1
src/libsodium/include/sodium/private/ed25519_ref10_fe_25_5.h

@ -1,6 +1,7 @@
#include <string.h>
#include "private/common.h"
#include "private/quirks.h"
#include "utils.h"
/*

1
src/libsodium/include/sodium/private/ed25519_ref10_fe_51.h

@ -1,6 +1,7 @@
#include <string.h>
#include "private/common.h"
#include "private/quirks.h"
#include "utils.h"
/*

2
src/libsodium/include/sodium/private/implementations.h

@ -1,6 +1,8 @@
#ifndef implementations_H
#define implementations_H
#include "private/quirks.h"
int _crypto_generichash_blake2b_pick_best_implementation(void);
int _crypto_onetimeauth_poly1305_pick_best_implementation(void);
int _crypto_pwhash_argon2_pick_best_implementation(void);

2
src/libsodium/include/sodium/private/mutex.h

@ -1,6 +1,8 @@
#ifndef mutex_H
#define mutex_H 1
#include "private/quirks.h"
extern int sodium_crit_enter(void);
extern int sodium_crit_leave(void);

81
src/libsodium/include/sodium/private/quirks.h

@ -0,0 +1,81 @@
/* This is an automatically generated file */
#ifndef quirks_H
#ifndef NO_QUIRKS
#define argon2_ctx _sodium_argon2_ctx
#define argon2_decode_string _sodium_argon2_decode_string
#define argon2_encode_string _sodium_argon2_encode_string
#define argon2_fill_memory_blocks _sodium_argon2_fill_memory_blocks
#define argon2_fill_segment_avx2 _sodium_argon2_fill_segment_avx2
#define argon2_fill_segment_avx512f _sodium_argon2_fill_segment_avx512f
#define argon2_fill_segment_ref _sodium_argon2_fill_segment_ref
#define argon2_fill_segment_ssse3 _sodium_argon2_fill_segment_ssse3
#define argon2_finalize _sodium_argon2_finalize
#define argon2_hash _sodium_argon2_hash
#define argon2_initialize _sodium_argon2_initialize
#define argon2_validate_inputs _sodium_argon2_validate_inputs
#define argon2_verify _sodium_argon2_verify
#define argon2i_hash_encoded _sodium_argon2i_hash_encoded
#define argon2i_hash_raw _sodium_argon2i_hash_raw
#define argon2i_verify _sodium_argon2i_verify
#define argon2id_hash_encoded _sodium_argon2id_hash_encoded
#define argon2id_hash_raw _sodium_argon2id_hash_raw
#define argon2id_verify _sodium_argon2id_verify
#define blake2b _sodium_blake2b
#define blake2b_compress_avx2 _sodium_blake2b_compress_avx2
#define blake2b_compress_ref _sodium_blake2b_compress_ref
#define blake2b_compress_sse41 _sodium_blake2b_compress_sse41
#define blake2b_compress_ssse3 _sodium_blake2b_compress_ssse3
#define blake2b_final _sodium_blake2b_final
#define blake2b_init _sodium_blake2b_init
#define blake2b_init_key _sodium_blake2b_init_key
#define blake2b_init_key_salt_personal _sodium_blake2b_init_key_salt_personal
#define blake2b_init_param _sodium_blake2b_init_param
#define blake2b_init_salt_personal _sodium_blake2b_init_salt_personal
#define blake2b_long _sodium_blake2b_long
#define blake2b_pick_best_implementation _sodium_blake2b_pick_best_implementation
#define blake2b_salt_personal _sodium_blake2b_salt_personal
#define blake2b_update _sodium_blake2b_update
#define escrypt_PBKDF2_SHA256 _sodium_escrypt_PBKDF2_SHA256
#define escrypt_alloc_region _sodium_escrypt_alloc_region
#define escrypt_free_local _sodium_escrypt_free_local
#define escrypt_free_region _sodium_escrypt_free_region
#define escrypt_gensalt_r _sodium_escrypt_gensalt_r
#define escrypt_init_local _sodium_escrypt_init_local
#define escrypt_kdf_nosse _sodium_escrypt_kdf_nosse
#define escrypt_kdf_sse _sodium_escrypt_kdf_sse
#define escrypt_parse_setting _sodium_escrypt_parse_setting
#define escrypt_r _sodium_escrypt_r
#define fe25519_frombytes _sodium_fe25519_frombytes
#define fe25519_invert _sodium_fe25519_invert
#define fe25519_tobytes _sodium_fe25519_tobytes
#define ge25519_add _sodium_ge25519_add
#define ge25519_double_scalarmult_vartime _sodium_ge25519_double_scalarmult_vartime
#define ge25519_from_hash _sodium_ge25519_from_hash
#define ge25519_from_uniform _sodium_ge25519_from_uniform
#define ge25519_frombytes _sodium_ge25519_frombytes
#define ge25519_frombytes_negate_vartime _sodium_ge25519_frombytes_negate_vartime
#define ge25519_has_small_order _sodium_ge25519_has_small_order
#define ge25519_is_canonical _sodium_ge25519_is_canonical
#define ge25519_is_on_curve _sodium_ge25519_is_on_curve
#define ge25519_is_on_main_subgroup _sodium_ge25519_is_on_main_subgroup
#define ge25519_p1p1_to_p2 _sodium_ge25519_p1p1_to_p2
#define ge25519_p1p1_to_p3 _sodium_ge25519_p1p1_to_p3
#define ge25519_p3_to_cached _sodium_ge25519_p3_to_cached
#define ge25519_p3_tobytes _sodium_ge25519_p3_tobytes
#define ge25519_scalarmult _sodium_ge25519_scalarmult
#define ge25519_scalarmult_base _sodium_ge25519_scalarmult_base
#define ge25519_sub _sodium_ge25519_sub
#define ge25519_tobytes _sodium_ge25519_tobytes
#define ristretto255_from_hash _sodium_ristretto255_from_hash
#define ristretto255_frombytes _sodium_ristretto255_frombytes
#define ristretto255_p3_tobytes _sodium_ristretto255_p3_tobytes
#define sc25519_invert _sodium_sc25519_invert
#define sc25519_is_canonical _sodium_sc25519_is_canonical
#define sc25519_mul _sodium_sc25519_mul
#define sc25519_muladd _sodium_sc25519_muladd
#define sc25519_reduce _sodium_sc25519_reduce
#endif
#endif

179
test/rename-globals.sh

@ -0,0 +1,179 @@
#! /bin/sh
LIBSODIUM_DIR="$(mktemp -d)"
LIBSODIUM_PATH="${LIBSODIUM_DIR}/lib/libsodium.a"
SYMBOLS_DIR="test/symbols"
ALL_HOST_SYMBOLS="${SYMBOLS_DIR}/all-host-symbols.txt"
ALL_HOST_SYMBOLS_NEW="${ALL_HOST_SYMBOLS}.new"
ALL_SYMBOLS="${SYMBOLS_DIR}/all-symbols.txt"
ALL_SYMBOLS_NEW="${ALL_SYMBOLS}.new"
INTERNAL_HOST_SYMBOLS="${SYMBOLS_DIR}/internal-host-symbols.txt"
INTERNAL_HOST_SYMBOLS_NEW="${INTERNAL_HOST_SYMBOLS}.new"
INTERNAL_SYMBOLS="${SYMBOLS_DIR}/internal-symbols.txt"
INTERNAL_SYMBOLS_NEW="${INTERNAL_SYMBOLS}.new"
INTERNAL_SYMBOL_PREFIX="_sodium_"
QUIRKS_H="src/libsodium/include/sodium/private/quirks.h"
QUIRKS_H_NEW="${QUIRKS_H}.new"
CFLAGS_UNOPTIMIZED="-O0 -fno-lto"
MAKE_OPTS="-j$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)"
NM="nm"
NM_OPTS=""
export LC_ALL=C
export LC_COLLATE=C
if [ ! -r "$QUIRKS_H" ]; then
cd ..
if [ ! -r "$QUIRKS_H" ]; then
echo "[$QUIRKS_H] not found" >&2
exit 1
fi
fi
echo "Compiling without quirks..."
make distclean 2>/dev/null
env CFLAGS="$CFLAGS_UNOPTIMIZED" CPPFLAGS="-DNO_QUIRKS=1 -DDEV_MODE=1" \
./configure --prefix="$LIBSODIUM_DIR" \
--disable-shared --enable-static --disable-dependency-tracking >/dev/null || exit 1
make clean >/dev/null || exit 1
make $MAKE_OPTS install >/dev/null 2>&1 || exit 1
echo "Done."
echo
mkdir -p "$SYMBOLS_DIR" || exit 1
[ -e "$ALL_SYMBOLS" ] || touch "$ALL_SYMBOLS"
[ -e "$ALL_HOST_SYMBOLS" ] || touch "$ALL_HOST_SYMBOLS"
[ -e "$QUIRKS_H" ] || touch "$QUIRKS_H"
if [ -e "$INTERNAL_SYMBOLS" ]; then
grep -v "^sodium_" "$ALL_SYMBOLS" |
grep -v "^crypto_" |
grep -v "^randombytes" >"$INTERNAL_SYMBOLS"
fi
for opt in --demangle --defined-only -P; do
"$NM" $NM_OPTS $opt "$LIBSODIUM_PATH" >/dev/null 2>&1 &&
NM_OPTS="${NM_OPTS} ${opt}"
done
echo "nm: [${NM} ${NM_OPTS}]"
sodium_init_symbol=$("$NM" $NM_OPTS "$LIBSODIUM_PATH" |
grep "^[^ ]*sodium_init T " | cut -d " " -f1 | cut -d "(" -f1)
if ! echo "$sodium_init_symbol" | grep -q "sodium_init$"; then
echo "Unable to parse symbols" >&2
exit 1
fi
SYMBOL_PREFIX=$(echo "$sodium_init_symbol" | sed "s/sodium_init$//")
echo "symbol prefix: [${SYMBOL_PREFIX}]"
"$NM" $NM_OPTS "$LIBSODIUM_PATH" | grep "^${SYMBOL_PREFIX}[^ ]* T " |
cut -d " " -f1 | cut -d "(" -f1 | sed "s/^${SYMBOL_PREFIX}//" |
grep -v "^_" | sort -u >"${ALL_HOST_SYMBOLS_NEW}.tmp"
cat "${ALL_HOST_SYMBOLS_NEW}.tmp" "$ALL_HOST_SYMBOLS" | sort -u >"$ALL_HOST_SYMBOLS_NEW" &&
rm -f "${ALL_HOST_SYMBOLS_NEW}.tmp"
cat "$ALL_HOST_SYMBOLS_NEW" "$ALL_SYMBOLS" | sort -u >"$ALL_SYMBOLS_NEW"
grep -v "^sodium_" "$ALL_HOST_SYMBOLS_NEW" |
grep -v "^crypto_" |
grep -v "^randombytes" >"$INTERNAL_HOST_SYMBOLS_NEW"
grep -v "^sodium_" "$ALL_SYMBOLS_NEW" |
grep -v "^crypto_" |
grep -v "^randombytes" >"$INTERNAL_SYMBOLS_NEW"
cat >"$QUIRKS_H_NEW" <<EOT
/* This is an automatically generated file */
#ifndef quirks_H
#ifndef NO_QUIRKS
EOT
while read -r fn; do
prefixed_fn="${INTERNAL_SYMBOL_PREFIX}${fn}"
if grep "^${prefixed_fn}$" "$ALL_SYMBOLS_NEW"; then
echo "Name collision: [${fn}] cannot be renamed to existing [${prefixed_fn}]" >&2
exit 1
fi
echo "#define ${fn} ${prefixed_fn}" >>"$QUIRKS_H_NEW"
done <"$INTERNAL_SYMBOLS_NEW"
cat >>"$QUIRKS_H_NEW" <<EOT
#endif
#endif
EOT
if [ -s "$ALL_SYMBOLS" ]; then
echo
echo "* Changes to all symbols:"
diff -u "$ALL_SYMBOLS" "$ALL_SYMBOLS_NEW"
fi
if [ -s "$ALL_HOST_SYMBOLS" ]; then
echo
echo "* Changes to host symbols:"
diff -u "$ALL_HOST_SYMBOLS" "$ALL_HOST_SYMBOLS_NEW"
fi
if [ -s "$INTERNAL_SYMBOLS" ]; then
echo
echo "* Changes to internal symbols:"
diff -u "$INTERNAL_SYMBOLS" "$INTERNAL_SYMBOLS_NEW"
fi
if [ -s "$INTERNAL_HOST_SYMBOLS" ]; then
echo
echo "* Changes to internal host symbols:"
diff -u "$INTERNAL_HOST_SYMBOLS" "$INTERNAL_HOST_SYMBOLS_NEW"
fi
if [ -s "$QUIRKS_H" ]; then
echo
echo "* Changes to the quirks header file:"
diff -u "$QUIRKS_H" "$QUIRKS_H_NEW"
fi
echo
if diff -u "$QUIRKS_H" "$QUIRKS_H_NEW" | grep -v "^+++" | grep -q "^+" >/dev/null; then
echo "The quirks header file needs an update." >&2
exit 1
fi
if ! cmp "$QUIRKS_H" "$QUIRKS_H_NEW"; then
echo "The quirks header file may need an update." >&2
fi
mv -f "$QUIRKS_H" "${QUIRKS_H}.old"
mv -f "$QUIRKS_H_NEW" "$QUIRKS_H"
mv -f "$ALL_HOST_SYMBOLS_NEW" "$ALL_HOST_SYMBOLS"
mv -f "$ALL_SYMBOLS_NEW" "$ALL_SYMBOLS"
mv -f "$INTERNAL_HOST_SYMBOLS_NEW" "$INTERNAL_HOST_SYMBOLS"
mv -f "$INTERNAL_SYMBOLS_NEW" "$INTERNAL_SYMBOLS"
echo "Compiling with quirks..."
env CFLAGS="$CFLAGS_UNOPTIMIZED" CPPFLAGS="-DDEV_MODE=1" \
./configure --prefix="$LIBSODIUM_DIR" \
--disable-shared --enable-static --disable-dependency-tracking >/dev/null || exit 1
make clean >/dev/null || exit 1
make $MAKE_OPTS install >/dev/null 2>&1 || exit 1
"$NM" $NM_OPTS "$LIBSODIUM_PATH" | grep "^${SYMBOL_PREFIX}[^ ]* T " |
cut -d " " -f1 | cut -d "(" -f1 | sed "s/^${SYMBOL_PREFIX}//" |
grep -v "^_" | sort -u |
grep -v "^sodium_" |
grep -v "^crypto_" |
grep -v "^randombytes" >"$INTERNAL_HOST_SYMBOLS_NEW"
if [ -s "$INTERNAL_SYMBOLS_NEW" ]; then
echo "Internal symbols are still present:" >&2
echo >&2
cat "$INTERNAL_HOST_SYMBOLS_NEW" >&2
exit 1
fi
rm -f "$INTERNAL_HOST_SYMBOLS_NEW"
rm -fr "$LIBSODIUM_DIR"
echo "Done."

691
test/symbols/all-symbols.txt

@ -0,0 +1,691 @@
argon2_ctx
argon2_decode_string
argon2_encode_string
argon2_fill_memory_blocks
argon2_fill_segment_avx2
argon2_fill_segment_avx512f
argon2_fill_segment_ref
argon2_fill_segment_ssse3
argon2_finalize
argon2_hash
argon2_initialize
argon2_validate_inputs
argon2_verify
argon2i_hash_encoded
argon2i_hash_raw
argon2i_verify
argon2id_hash_encoded
argon2id_hash_raw
argon2id_verify
blake2b
blake2b_compress_avx2
blake2b_compress_ref
blake2b_compress_sse41
blake2b_compress_ssse3
blake2b_final
blake2b_init
blake2b_init_key
blake2b_init_key_salt_personal
blake2b_init_param
blake2b_init_salt_personal
blake2b_long
blake2b_pick_best_implementation
blake2b_salt_personal
blake2b_update
crypto_aead_aes256gcm_abytes
crypto_aead_aes256gcm_beforenm
crypto_aead_aes256gcm_decrypt
crypto_aead_aes256gcm_decrypt_afternm
crypto_aead_aes256gcm_decrypt_detached
crypto_aead_aes256gcm_decrypt_detached_afternm
crypto_aead_aes256gcm_encrypt
crypto_aead_aes256gcm_encrypt_afternm
crypto_aead_aes256gcm_encrypt_detached
crypto_aead_aes256gcm_encrypt_detached_afternm
crypto_aead_aes256gcm_is_available
crypto_aead_aes256gcm_keybytes
crypto_aead_aes256gcm_keygen
crypto_aead_aes256gcm_messagebytes_max
crypto_aead_aes256gcm_npubbytes
crypto_aead_aes256gcm_nsecbytes
crypto_aead_aes256gcm_statebytes
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_messagebytes_max
crypto_aead_chacha20poly1305_ietf_npubbytes
crypto_aead_chacha20poly1305_ietf_nsecbytes
crypto_aead_chacha20poly1305_keybytes
crypto_aead_chacha20poly1305_keygen
crypto_aead_chacha20poly1305_messagebytes_max
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_messagebytes_max
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_messagebytes_max
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_messagebytes_max
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_messagebytes_max
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_ed25519_add
crypto_core_ed25519_bytes
crypto_core_ed25519_from_hash
crypto_core_ed25519_from_uniform
crypto_core_ed25519_hashbytes
crypto_core_ed25519_is_valid_point
crypto_core_ed25519_nonreducedscalarbytes
crypto_core_ed25519_random
crypto_core_ed25519_scalar_add
crypto_core_ed25519_scalar_complement
crypto_core_ed25519_scalar_invert
crypto_core_ed25519_scalar_mul
crypto_core_ed25519_scalar_negate
crypto_core_ed25519_scalar_random
crypto_core_ed25519_scalar_reduce
crypto_core_ed25519_scalar_sub
crypto_core_ed25519_scalarbytes
crypto_core_ed25519_sub
crypto_core_ed25519_uniformbytes
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_ristretto255_add
crypto_core_ristretto255_bytes
crypto_core_ristretto255_from_hash
crypto_core_ristretto255_hashbytes
crypto_core_ristretto255_is_valid_point
crypto_core_ristretto255_nonreducedscalarbytes
crypto_core_ristretto255_random
crypto_core_ristretto255_scalar_add
crypto_core_ristretto255_scalar_complement
crypto_core_ristretto255_scalar_invert
crypto_core_ristretto255_scalar_mul
crypto_core_ristretto255_scalar_negate
crypto_core_ristretto255_scalar_random
crypto_core_ristretto255_scalar_reduce
crypto_core_ristretto255_scalar_sub
crypto_core_ristretto255_scalarbytes
crypto_core_ristretto255_sub
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_ed25519
crypto_scalarmult_ed25519_base
crypto_scalarmult_ed25519_base_noclamp
crypto_scalarmult_ed25519_bytes
crypto_scalarmult_ed25519_noclamp
crypto_scalarmult_ed25519_scalarbytes
crypto_scalarmult_primitive
crypto_scalarmult_ristretto255
crypto_scalarmult_ristretto255_base
crypto_scalarmult_ristretto255_bytes
crypto_scalarmult_ristretto255_scalarbytes
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_messagebytes_max
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_messagebytes_max
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_messagebytes_max
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_messagebytes_max
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_edwards25519sha512batch
crypto_sign_edwards25519sha512batch_keypair
crypto_sign_edwards25519sha512batch_open
crypto_sign_final_create
crypto_sign_final_verify
crypto_sign_init
crypto_sign_keypair
crypto_sign_messagebytes_max
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_ext
crypto_stream_chacha20_ietf_ext_xor_ic
crypto_stream_chacha20_ietf_keybytes
crypto_stream_chacha20_ietf_keygen
crypto_stream_chacha20_ietf_messagebytes_max
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_messagebytes_max
crypto_stream_chacha20_noncebytes
crypto_stream_chacha20_xor
crypto_stream_chacha20_xor_ic
crypto_stream_keybytes
crypto_stream_keygen
crypto_stream_messagebytes_max
crypto_stream_noncebytes
crypto_stream_primitive
crypto_stream_salsa20
crypto_stream_salsa2012
crypto_stream_salsa2012_keybytes
crypto_stream_salsa2012_keygen
crypto_stream_salsa2012_messagebytes_max
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_messagebytes_max
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_messagebytes_max
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_messagebytes_max
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
escrypt_PBKDF2_SHA256
escrypt_alloc_region
escrypt_free_local
escrypt_free_region
escrypt_gensalt_r
escrypt_init_local
escrypt_kdf_nosse
escrypt_kdf_sse
escrypt_parse_setting
escrypt_r
fe25519_frombytes
fe25519_invert
fe25519_tobytes
ge25519_add
ge25519_double_scalarmult_vartime
ge25519_from_hash
ge25519_from_uniform
ge25519_frombytes
ge25519_frombytes_negate_vartime
ge25519_has_small_order
ge25519_is_canonical
ge25519_is_on_curve
ge25519_is_on_main_subgroup
ge25519_p1p1_to_p2
ge25519_p1p1_to_p3
ge25519_p3_to_cached
ge25519_p3_tobytes
ge25519_scalarmult
ge25519_scalarmult_base
ge25519_sub
ge25519_tobytes
randombytes
randombytes_buf
randombytes_buf_deterministic
randombytes_close
randombytes_implementation_name
randombytes_random
randombytes_seedbytes
randombytes_set_implementation
randombytes_stir
randombytes_uniform
ristretto255_from_hash
ristretto255_frombytes
ristretto255_p3_tobytes
sc25519_invert
sc25519_is_canonical
sc25519_mul
sc25519_muladd
sc25519_reduce
sodium_add
sodium_allocarray
sodium_base642bin
sodium_base64_encoded_len
sodium_bin2base64
sodium_bin2hex
sodium_compare
sodium_crit_enter
sodium_crit_leave
sodium_free
sodium_hex2bin
sodium_increment
sodium_init
sodium_is_zero
sodium_library_minimal
sodium_library_version_major
sodium_library_version_minor
sodium_malloc
sodium_memcmp
sodium_memzero
sodium_misuse
sodium_mlock
sodium_mprotect_noaccess
sodium_mprotect_readonly
sodium_mprotect_readwrite
sodium_munlock
sodium_pad
sodium_runtime_has_aesni
sodium_runtime_has_avx
sodium_runtime_has_avx2
sodium_runtime_has_avx512f
sodium_runtime_has_neon
sodium_runtime_has_pclmul
sodium_runtime_has_rdrand
sodium_runtime_has_sse2
sodium_runtime_has_sse3
sodium_runtime_has_sse41
sodium_runtime_has_ssse3
sodium_scalarmult_curve25519_sandy2x_fe51_mul
sodium_scalarmult_curve25519_sandy2x_fe51_nsquare
sodium_scalarmult_curve25519_sandy2x_fe51_pack
sodium_scalarmult_curve25519_sandy2x_ladder
sodium_scalarmult_curve25519_sandy2x_ladder_base
sodium_set_misuse_handler
sodium_stackzero
sodium_stream_salsa20_xmm6
sodium_stream_salsa20_xmm6_xor_ic
sodium_sub
sodium_unpad
sodium_version_string
Loading…
Cancel
Save