Permalink
Browse files

Merge pull request #312 from cossacklabs/master

release 0.10.0
  • Loading branch information...
vixentael committed Feb 6, 2018
2 parents f23c6f3 + 66f286a commit 72974520fa94b08e89607cb31b0022470a3ee433
Showing with 5,450 additions and 1,751 deletions.
  1. +185 −0 .circleci/config.yml
  2. +5 −0 .gitignore
  3. +3 −0 .gitmodules
  4. +58 −0 CHANGELOG.md
  5. +17 −1 CMakeLists.txt
  6. +25 −0 ISSUE_TEMPLATE.md
  7. +115 −37 Makefile
  8. +16 −15 README.md
  9. +16 −38 build.gradle
  10. +0 −82 circle.yml
  11. +1 −1 docs/examples/Themis-server/Obj-C/Podfile
  12. +8 −8 docs/examples/Themis-server/Obj-C/Podfile.lock
  13. +34 −34 ...les/Themis-server/Obj-C/WorkingWithThemisServer/WorkingWithThemisServer.xcodeproj/project.pbxproj
  14. +9 −9 docs/examples/Themis-server/Obj-C/WorkingWithThemisServer/WorkingWithThemisServer/SMessageClient.m
  15. +9 −9 docs/examples/Themis-server/Obj-C/WorkingWithThemisServer/WorkingWithThemisServer/SSessionClient.m
  16. +1 −1 docs/examples/Themis-server/go/smessage_server.go
  17. +1 −1 docs/examples/Themis-server/go/ssession_server.go
  18. +15 −10 docs/examples/Themis-server/ruby/smessage_client.rb
  19. +30 −26 docs/examples/Themis-server/ruby/ssession_client.rb
  20. +1 −1 docs/examples/Themis-server/swift/Podfile
  21. +8 −8 docs/examples/Themis-server/swift/Podfile.lock
  22. +38 −38 ...s/Themis-server/swift/SwiftThemisServerExample/SwiftThemisServerExample.xcodeproj/project.pbxproj
  23. +76 −0 docs/examples/c/session_buffer_test/session_buffer_test.c
  24. +22 −0 docs/examples/c/session_buffer_test/session_buffer_test.h
  25. +1 −1 docs/examples/js/secure_session_client.js
  26. +10 −1 docs/examples/objc/Podfile
  27. +8 −8 docs/examples/objc/Podfile.lock
  28. +24 −24 docs/examples/objc/ThemisTest/ThemisTest.xcodeproj/project.pbxproj
  29. +1 −1 docs/examples/objc/ThemisTest/ThemisTest.xcodeproj/xcshareddata/xcschemes/ThemisTest.xcscheme
  30. +37 −0 docs/examples/objc/ThemisTest/ThemisTest/Classes/AppDelegate.m
  31. +2 −3 docs/examples/php/scell_test.php
  32. +2 −2 docs/examples/php/smessage_test.php
  33. +2 −3 docs/examples/php/ssession_client.php
  34. +1 −3 docs/examples/php/ssession_server.php
  35. +13 −15 docs/examples/ruby/scell_test.rb
  36. +15 −18 docs/examples/ruby/scomparator_test_eventmachine_client.rb
  37. +16 −19 docs/examples/ruby/scomparator_test_eventmachine_server.rb
  38. +9 −9 docs/examples/ruby/smessage_test.rb
  39. +32 −30 docs/examples/ruby/ssession_test_eventmachine_client.rb
  40. +26 −28 docs/examples/ruby/ssession_test_eventmachine_server.rb
  41. +11 −1 docs/examples/swift/Podfile
  42. +8 −8 docs/examples/swift/Podfile.lock
  43. +37 −37 docs/examples/swift/ThemisSwift/ThemisSwift.xcodeproj/project.pbxproj
  44. +1 −1 docs/examples/swift/ThemisSwift/ThemisSwift.xcodeproj/xcshareddata/xcschemes/ThemisSwift.xcscheme
  45. +32 −0 docs/examples/swift/ThemisSwift/ThemisSwift/Classes/AppDelegate.swift
  46. +3 −0 docs/examples/swift/ThemisSwift/ThemisSwift/ThemisSwift-Bridging-Header.h
  47. +16 −0 gothemis/session/session.go
  48. +28 −14 gothemis/session/session_test.go
  49. +2 −2 gradle/wrapper/gradle-wrapper.properties
  50. +23 −23 jni/Android.mk
  51. +7 −2 jni/Application.mk
  52. +8 −2 jni/themis_jni.mk
  53. +22 −0 scripts/phpthemis_postinstall.sh
  54. +22 −0 scripts/phpthemis_preuninstall.sh
  55. +2 −0 settings.gradle
  56. +4 −1 src/soter/openssl/soter_asym_cipher.c
  57. +6 −6 src/soter/soter_asym_cipher.h
  58. +6 −6 src/soter/soter_asym_ka.h
  59. +11 −12 src/soter/soter_asym_sign.h
  60. +6 −4 src/soter/soter_error.h
  61. +3 −3 src/soter/soter_hash.h
  62. +3 −3 src/soter/soter_hmac.h
  63. +25 −25 src/soter/soter_sym.h
  64. +6 −5 src/themis/secure_cell.h
  65. +2 −2 src/themis/secure_message.h
  66. +1 −1 src/themis/secure_session.c
  67. +43 −6 src/themis/sym_enc_message.c
  68. +2 −3 src/wrappers/themis/Obj-C/objcthemis/scomparator.h
  69. +1 −1 src/wrappers/themis/Obj-C/objcthemis/skeygen.h
  70. +2 −2 src/wrappers/themis/Obj-C/objcthemis/smessage.h
  71. +2 −2 src/wrappers/themis/Obj-C/objcthemis/ssession.h
  72. +1 −1 src/wrappers/themis/Obj-C/objcthemis/ssession_transport_interface.h
  73. +1 −1 src/wrappers/themis/android/AndroidManifest.xml
  74. +1 −1 src/wrappers/themis/jsthemis/package.json
  75. +1 −1 src/wrappers/themis/php/php_themis.h
  76. +35 −0 src/wrappers/themis/php7/config.m4
  77. +211 −0 src/wrappers/themis/php7/php_cell.c
  78. +26 −0 src/wrappers/themis/php7/php_cell.h
  79. +68 −0 src/wrappers/themis/php7/php_key_generator.c
  80. +28 −0 src/wrappers/themis/php7/php_key_generator.h
  81. +78 −0 src/wrappers/themis/php7/php_message.c
  82. +28 −0 src/wrappers/themis/php7/php_message.h
  83. +213 −0 src/wrappers/themis/php7/php_session.c
  84. +39 −0 src/wrappers/themis/php7/php_session.h
  85. +86 −0 src/wrappers/themis/php7/php_themis.c
  86. +26 −0 src/wrappers/themis/php7/php_themis.h
  87. +2 −2 src/wrappers/themis/python/PKG-INFO
  88. +1 −1 src/wrappers/themis/python/setup.py
  89. +576 −332 src/wrappers/themis/ruby/lib/rubythemis.rb
  90. +9 −8 src/wrappers/themis/ruby/rubythemis.gemspec
  91. +1 −1 src/wrappers/themis/themispp/secure_keygen.hpp
  92. +9 −0 tests/_integration/base.template
  93. +12 −0 tests/_integration/decrypt_folder.sh
  94. +14 −0 tests/_integration/encrypt_folder.sh
  95. +0 −41 tests/_integration/integration_checks.sh
  96. +8 −0 tests/_integration/integration_scell_context_imprint.template
  97. +17 −0 tests/_integration/integration_scell_seal.template
  98. +16 −0 tests/_integration/integration_scell_token_protect.template
  99. +8 −0 tests/_integration/integration_smessage_encryption.template
  100. +8 −0 tests/_integration/integration_smessage_signing.template
  101. +3 −0 tests/_integration/integration_total.template
  102. BIN tests/_integration/keys/client.priv
  103. BIN tests/_integration/keys/client.pub
  104. BIN tests/_integration/keys/server.priv
  105. BIN tests/_integration/keys/server.pub
  106. +68 −0 tests/_integration/tests_generator.py
  107. +24 −0 tests/_integration/utils.sh
  108. +9 −0 tests/objcthemis/Podfile
  109. +8 −8 tests/objcthemis/Podfile.lock
  110. +47 −39 tests/objcthemis/objcthemis.xcodeproj/project.pbxproj
  111. +5 −2 tests/objcthemis/objthemis/SecureCellTests.m
  112. +7 −5 tests/objcthemis/objthemis/SecureCellTestsSwift.swift
  113. +57 −0 tests/objcthemis/objthemis/SecureComparatorTests.m
  114. +44 −0 tests/objcthemis/objthemis/SecureComparatorTestsSwift.swift
  115. +3 −0 tests/objcthemis/objthemis/objthemis-Bridging-Header.h
  116. +63 −0 tests/phpthemis/README.md
  117. +8 −0 tests/phpthemis/composer-php5.6.json
  118. +8 −0 tests/phpthemis/composer-php7.2.json
  119. +8 −0 tests/phpthemis/composer-php7.json
  120. +6 −0 tests/phpthemis/composer-setup.sh
  121. +5 −0 tests/phpthemis/init_env-php5.6.sh
  122. +11 −0 tests/phpthemis/init_env-php7.sh
  123. +368 −0 tests/phpthemis/memory_leakage_test.php
  124. +25 −0 tests/phpthemis/run_tests.sh
  125. +244 −192 tests/phpthemis/scell_test.php
  126. +99 −93 tests/phpthemis/smessage_test.php
  127. +62 −55 tests/phpthemis/ssession_test.php
  128. +2 −0 tests/pythemis/test_scell.py
  129. +55 −32 tests/rubythemis/scell_test.rb
  130. +58 −67 tests/rubythemis/scomparator_test.rb
  131. +59 −41 tests/rubythemis/smessage_test.rb
  132. +61 −65 tests/rubythemis/ssession_test.rb
  133. BIN tests/soter/nist-sts/assess
  134. +29 −24 tests/test.mk
  135. +32 −2 tests/themis/themis_seccure_message.c
  136. +10 −0 tests/themis/themis_secure_cell.c
  137. +197 −43 tests/themispp/secure_cell_test.hpp
  138. +93 −37 tests/themispp/secure_message_test.hpp
  139. +28 −0 tests/tools/check_keygen.sh
  140. +1 −1 themis.podspec
  141. +4 −0 third_party/boringssl/AndroidManifest.xml
  142. +43 −0 third_party/boringssl/build.gradle
  143. +1 −0 third_party/boringssl/src
  144. +39 −0 tools/go/keygen.go
  145. 0 {tests/_integration → tools/go}/scell_context_string_echo.go
  146. 0 {tests/_integration → tools/go}/scell_seal_string_echo.go
  147. 0 {tests/_integration → tools/go}/scell_token_string_echo.go
  148. +82 −0 tools/go/smessage_encryption.go
  149. +20 −0 tools/js/keygen.js
  150. +28 −0 tools/js/scell_context_string_echo.js
  151. +39 −0 tools/js/scell_seal_string_echo.js
  152. +41 −0 tools/js/scell_token_string_echo.js
  153. +39 −0 tools/js/smessage_encryption.js
  154. +40 −0 tools/php/keygen.php
  155. +40 −0 tools/php/scell_context_string_echo.php
  156. +39 −0 tools/php/scell_seal_string_echo.php
  157. +44 −0 tools/php/scell_token_string_echo.php
  158. +45 −0 tools/php/smessage_encryption.php
  159. +44 −0 tools/python/keygen.py
  160. +42 −0 tools/python/scell_context_string_echo.py
  161. +43 −0 tools/python/scell_seal_string_echo.py
  162. +48 −0 tools/python/scell_token_string_echo.py
  163. +58 −0 tools/python/smessage_encryption.py
  164. +47 −0 tools/ruby/keygen.rb
  165. 0 {tests/_integration → tools/ruby}/scell_context_string_echo.rb
  166. 0 {tests/_integration → tools/ruby}/scell_seal_string_echo.rb
  167. 0 {tests/_integration → tools/ruby}/scell_token_string_echo.rb
  168. +57 −0 tools/ruby/smessage_encryption.rb
@@ -0,0 +1,185 @@
version: 2
jobs:
android:
docker:
- image: cossacklabs/android-build
steps:
- checkout
- run: git submodule update --init
# limit CMake/Ninja build concurrency when building BoringSSL
# otherwise we hit the 4GB memory limit for the build container
- run: echo 'set_property(GLOBAL APPEND PROPERTY JOB_POOLS circleci_job_pool=4)' >> third_party/boringssl/src/CMakeLists.txt
- run: sed -i 's/"-GNinja"/"-DCMAKE_JOB_POOL_COMPILE=circleci_job_pool", "-GNinja"/g' third_party/boringssl/build.gradle
- run: ./gradlew --no-daemon --no-parallel --max-workers=2 assembleDebug
# install emulator image and create a device
- run: $ANDROID_HOME/tools/bin/sdkmanager 'emulator' 'system-images;android-22;default;armeabi-v7a'
- run: $ANDROID_HOME/tools/bin/avdmanager create avd --name nexus --device "Nexus 5" --package 'system-images;android-22;default;armeabi-v7a'
- run:
command: $ANDROID_HOME/emulator/emulator -avd nexus -noaudio -no-window -gpu off -verbose -qemu
background: true
# wait for emulator to fully boot before running tests
- run: timeout 10m /bin/bash -c 'while true; do $ANDROID_HOME/platform-tools/adb wait-for-device logcat -b events -d | grep -i boot_progress_enable_screen && break; date; sleep 3; done'
- run: ./gradlew --no-daemon --no-parallel --max-workers=2 connectedAndroidTest
x86_64:
docker:
- image: cossacklabs/android-build
environment:
GOTHEMIS_IMPORT: github.com/cossacklabs/themis/gothemis
CFLAGS: "-DCIRICLE_TEST"
steps:
- run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install libssl-dev python python-setuptools python3 python3-setuptools ruby-dev nodejs npm lcov libc6-dbg rsync software-properties-common
- run: sudo ln -sf /usr/bin/gcov-5 /usr/bin/gcov
- run: sudo ln -sf /usr/bin/nodejs /usr/bin/node
- run: sudo gem install coveralls-lcov
- run: go get github.com/mattn/goveralls
# ruby rvm repository
- run: sudo apt-add-repository -y ppa:rael-gc/rvm
- run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install rvm
# download last valgrind because current version of valgrind on ubuntu (3.11.0) gives false positive errors
# link from http://valgrind.org/downloads/current.html
# don't fetch if was cached
- restore_cache:
keys:
- valgrind-3.13.0
- run: if [ ! -d $HOME/valgrind ]; then cd $HOME && wget ftp://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2 && tar -xjf valgrind-3.13.0.tar.bz2 && cd valgrind-3.13.0 && ./configure --prefix=$HOME/valgrind && make && sudo make install; fi
- save_cache:
key: valgrind-3.13.0
paths:
- ~/valgrind
- checkout
- run: make
- run: make JAVA_HOME=/usr/lib/jvm/default-java themis_jni
- run: sudo make install
- run: sudo make themispp_install
- run: sudo make pythemis_install
- run: sudo make rubythemis_install
- run: sudo make jsthemis_install
- restore_cache:
keys:
- boringssl-chromium-stable
- run: if [ ! -d $HOME/boringssl ]; then cd $HOME && git clone https://boringssl.googlesource.com/boringssl && cd boringssl && git checkout chromium-stable && mkdir build && cd build && cmake .. && make && cp decrepit/libdecrepit.a crypto/; fi
- save_cache:
key: boringssl-chromium-stable
paths:
- ~/boringssl
- run: make ENGINE=boringssl ENGINE_INCLUDE_PATH=$HOME/boringssl/include ENGINE_LIB_PATH=$HOME/boringssl/build/crypto BUILD_PATH=build_with_boringssl prepare_tests_basic
- run: make BUILD_PATH=cover_build COVERAGE=y prepare_tests_basic
- run: make prepare_tests_all
- run: mkdir -p $HOME/go/src/$GOTHEMIS_IMPORT
- run: rsync -auv gothemis/ $HOME/go/src/$GOTHEMIS_IMPORT/
- run: lcov --directory . --zerocounters
# run only if CIRCLE_PR_NUMBER variable is not set (it's not pull request and COVERALLS_TOKEN will be set via circleCI for non-PR build) and COVERALLS_TOKEN is set
# we should calculate coverage for gothemis and send report before sending coverage of main C part
- run: '[ -z "$CIRCLE_PR_NUMBER" ] && ! [ -z "$COVERALLS_TOKEN" ] && cd $HOME/go/src/$GOTHEMIS_IMPORT && $HOME/go/bin/goveralls -v -service=circle-ci -repotoken=$COVERALLS_TOKEN || true'
- run: sudo /sbin/ldconfig
- run: make test
- run: make test_python
- run: sudo make test_js
# it's important to set version of ruby precisely.
- run: source /etc/profile.d/rvm.sh && rvm use system && make test_ruby
- run: make test_go
- run: $HOME/valgrind/bin/valgrind build/tests/soter_test 2>&1 | grep "ERROR SUMMARY\|definitely lost\|indirectly lost\|possibly lost" | awk '{sum += $4} END {print $0; if ( sum > 0 ) { exit 1 } }'
- run: $HOME/valgrind/bin/valgrind build/tests/themis_test 2>&1 | grep "ERROR SUMMARY\|definitely lost\|indirectly lost\|possibly lost" | awk '{sum += $4} END {print $0; if ( sum > 0 ) { exit 1 } }'
- run: cover_build/tests/soter_test
- run: cover_build/tests/themis_test
- run: lcov --directory . --capture --output-file coverage.info
- run: lcov --remove coverage.info 'tests/*' 'src/soter/openssl/*' '/usr/*' --output-file coverage.info
- run: lcov --list coverage.info
- run: coveralls-lcov -v --repo-token $COVERALLS_TOKEN coverage.info || true
- run: $HOME/valgrind/bin/valgrind build_with_boringssl/tests/soter_test 2>&1 | grep "ERROR SUMMARY\|definitely lost\|indirectly lost\|possibly lost" | awk '{sum += $4} END {print $0; if ( sum > 0 ) { exit 1 } }'
- run: $HOME/valgrind/bin/valgrind build_with_boringssl/tests/themis_test 2>&1 | grep "ERROR SUMMARY\|definitely lost\|indirectly lost\|possibly lost" | awk '{sum += $4} END {print $0; if ( sum > 0 ) { exit 1 } }'
integration_tests:
docker:
- image: cossacklabs/android-build
environment:
GOTHEMIS_IMPORT: github.com/cossacklabs/themis/gothemis
CFLAGS: "-DCIRICLE_TEST"
steps:
# dependencies
- run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install libssl-dev python python-setuptools python3 python3-setuptools ruby-dev lcov libc6-dbg rsync software-properties-common
# nodejs
- run: sudo DEBIAN_FRONTEND=noninteractive apt-get -y install nodejs npm
- run: sudo ln -sf /usr/bin/nodejs /usr/bin/node
# ruby rvm repository
- run: sudo apt-add-repository -y ppa:rael-gc/rvm
- run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install rvm
# php7
- run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install php7.0-dev php7.0-xml php7.0-mbstring
# themis
- checkout
- run: make
- run: make JAVA_HOME=/usr/lib/jvm/default-java themis_jni
- run: sudo make install
- run: sudo make themispp_install
- run: sudo make pythemis_install
- run: sudo make rubythemis_install
- run: sudo make phpthemis_install
- run: sudo bash -c 'echo "extension=phpthemis.so" > /etc/php/7.0/cli/conf.d/20-phpthemis.ini'
- run: sudo make jsthemis_install
- run: mkdir -p $HOME/go/src/$GOTHEMIS_IMPORT
- run: rsync -auv gothemis/ $HOME/go/src/$GOTHEMIS_IMPORT/
- run: sudo /sbin/ldconfig
# generate integration tests
- run: python tests/_integration/tests_generator.py
- run: bash tests/_integration/integration_total.sh
- run: bash tests/tools/check_keygen.sh
# using this php5 image until we ensure tests are working for php7
php5:
docker:
- image: circleci/php:5.6
steps:
- run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install cmake libssl-dev build-essential libc6-dbg default-jdk
- checkout
- run: make
- run: sudo make install
- run: sudo make phpthemis_install
- run: make prepare_tests_all
- run: make test_php
php70:
docker:
- image: circleci/php:7.0
steps:
- run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install cmake libssl-dev build-essential libc6-dbg default-jdk
- checkout
- run: make
- run: sudo make install
- run: sudo make phpthemis_install
- run: make prepare_tests_all
- run: make test_php
php71:
docker:
- image: circleci/php:7.1
steps:
- run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install cmake libssl-dev build-essential libc6-dbg default-jdk
- checkout
- run: make
- run: sudo make install
- run: sudo make phpthemis_install
- run: make prepare_tests_all
- run: make test_php
workflows:
version: 2
tests:
jobs:
- android
- x86_64
- php5
- php70
- php71
- integration_tests
@@ -43,3 +43,8 @@ build
__pycache__/
*.py[cod]
*$py.class
tests/phpthemis/vendor
tests/phpthemis/composer.json
tests/phpthemis/composer.phar
tests/phpthemis/composer.lock
@@ -0,0 +1,3 @@
[submodule "third_party/boringssl/src"]
path = third_party/boringssl/src
url = https://boringssl.googlesource.com/boringssl
@@ -1,5 +1,63 @@
# Themis ChangeLog
## [0.10.0](https://github.com/cossacklabs/themis/releases/tag/0.10.0), February 6th 2018
**TL;DR:** Multi-platform, multi-language compatibility improved.
⚠️ _Incompatibility issues:_
- If you are using Themis on x64 systems, consider upgrading every Themis library/wrapper you were using to `0.10.0`. Incompatibility issues may arise between previous Themis versions and `0.10.0` on x64 machines ([#279](https://github.com/cossacklabs/themis/pull/279)).
- Rubythemis has breaking changes for Secure Cell Token Protect mode ([#281](https://github.com/cossacklabs/themis/pull/281)). We added checks for other language wrappers to make sure this won't happen again ([#282](https://github.com/cossacklabs/themis/pull/282), [#283](https://github.com/cossacklabs/themis/pull/283)).
Check the [Migration Guide](https://github.com/cossacklabs/themis/wiki/Migration-guide) for more details.
_Docs:_
- Updated the descriptions of [Crypto systems](https://github.com/cossacklabs/themis/wiki/Cryptosystems), added more usage examples and code samples.
- Refreshed code samples in language tutorials, made them more readable.<br/>[Obj-C](https://github.com/cossacklabs/themis/wiki/Objective-C-Howto) | [Swift](https://github.com/cossacklabs/themis/wiki/Swift-Howto) | [Java and Android](https://github.com/cossacklabs/themis/wiki/Java-and-Android-Howto) | [Python](https://github.com/cossacklabs/themis/wiki/Python-Howto) | [PHP](https://github.com/cossacklabs/themis/wiki/PHP-Howto) | [Ruby](https://github.com/cossacklabs/themis/wiki/Ruby-Howto) | [C++](https://github.com/cossacklabs/themis/wiki/CPP-Howto) | [Go](https://github.com/cossacklabs/themis/wiki/Go-HowTo) | [Node js](https://github.com/cossacklabs/themis/wiki/NodeJS-Howto).
- Added human-friendly description of [Secure Comparator](https://github.com/cossacklabs/themis/wiki/Secure-Comparator-cryptosystem) and supplied usage examples for all languages with the exception of PHP.
_Infrastructure:_
- Added support of _Ubuntu 17.10_.
- Removed support of _Ubuntu 16.10_ and _Ubuntu 17.04_ (no more compiled binaries for these OSs now).
- Added CLI utils for easy testing of Secure Cell, Secure Message, and Key generation on local machine. Available for Python, Ruby, Go, NodeJS, and PHP. Check the [Console Utils](https://github.com/cossacklabs/themis/wiki/Encrypt-Decrypt-Console-Utils) guide for more details and usage description/guide.
- Added [Integration test suit](https://github.com/cossacklabs/themis/tree/master/tests/_integration) for the majority of the available language wrappers, which was the catalyst for many fixes in this release.
- Added support of CircleCI 2.0 with multiple workflows. This allows testing each language wrapper and integrations between them easily and quickly ([#295](https://github.com/cossacklabs/themis/pull/295), [#299](https://github.com/cossacklabs/themis/pull/299)).
_Code:_
- **Core:**
- Fixed incompatibility issue that existed in Secure Cell between x32 and x64 machines ([#279](https://github.com/cossacklabs/themis/pull/279));
- Added C examples for using buffer API in Secure Session ([#271](https://github.com/cossacklabs/themis/pull/271));
- Fixed possible SigFault in Secure Message at the point of providing an incorrect private key path ([#286](https://github.com/cossacklabs/themis/pull/286)).
- **C++ wrapper:**
- Added a set of unit tests ([#292](https://github.com/cossacklabs/themis/pull/292)).
- **Android wrapper**:
- simplified Android build by providing a ready-to-use Docker container. No need to compile BoringSSL manually now! ([#273](https://github.com/cossacklabs/themis/pull/273) by [@secumod](https://github.com/secumod)).
- **iOS wrapper:**
- Updated Secure Comparator definitions and provided code samples ([#287](https://github.com/cossacklabs/themis/pull/287), [#288](https://github.com/cossacklabs/themis/pull/288)).
- **GoThemis:**
- Added `get_remote_id` function, which is making SecureSession easier to use ([#272](https://github.com/cossacklabs/themis/pull/272));
- Added [CLI utils](https://github.com/cossacklabs/themis/wiki/Encrypt-Decrypt-Console-Utils) and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine ([#277](https://github.com/cossacklabs/themis/pull/277), [#293](https://github.com/cossacklabs/themis/pull/293), [#305](https://github.com/cossacklabs/themis/pull/305), [#306](https://github.com/cossacklabs/themis/pull/306)).
- **JSThemis:**
- Added a separate installation step in Makefile. Now you can install jsthemis via `make jsthemis_install` ([#302](https://github.com/cossacklabs/themis/pull/302));
- Added [CLI utils](https://github.com/cossacklabs/themis/wiki/Encrypt-Decrypt-Console-Utils) and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine ([#277](https://github.com/cossacklabs/themis/pull/277), [#293](https://github.com/cossacklabs/themis/pull/293), [#305](https://github.com/cossacklabs/themis/pull/305), [#306](https://github.com/cossacklabs/themis/pull/306)).
- **RubyThemis:**
- Fixed arguments' order for Secure Cell in the Token Protect mode, which caused incompatibility with older versions of rubythemis ([#281](https://github.com/cossacklabs/themis/pull/281)). Please check the [migration guide](https://github.com/cossacklabs/themis/wiki/Migration-guide) for the details;
- Added [CLI utils](https://github.com/cossacklabs/themis/wiki/Encrypt-Decrypt-Console-Utils) and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine ([#277](https://github.com/cossacklabs/themis/pull/277), [#293](https://github.com/cossacklabs/themis/pull/293), [#305](https://github.com/cossacklabs/themis/pull/305), [#306](https://github.com/cossacklabs/themis/pull/306))
- **PyThemis:**
- Improved the installation process via Makefile for python3 users ([#300](https://github.com/cossacklabs/themis/pull/300));
- Added [CLI utils](https://github.com/cossacklabs/themis/wiki/Encrypt-Decrypt-Console-Utils) and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine ([#277](https://github.com/cossacklabs/themis/pull/277), [#293](https://github.com/cossacklabs/themis/pull/293), [#305](https://github.com/cossacklabs/themis/pull/305), [#306](https://github.com/cossacklabs/themis/pull/306)).
- **PHPThemis:**
- Added support of PHP 7.0, 7.1, 7.2 ([#278](https://github.com/cossacklabs/themis/pull/278), [#280](https://github.com/cossacklabs/themis/pull/280));
- Added a package for `phpthemis`. Now you don't need to compile it from sources. See the installation [PHP guide](https://github.com/cossacklabs/themis/wiki/PHP-Howto#installing-from-packages) for more details;
- Improved [unit tests](https://github.com/cossacklabs/themis/wiki/PHP-Howto#installing-phpthemis). Now it's easy to run tests because all the dependencies are handled by a php-composer ([#284](https://github.com/cossacklabs/themis/pull/284), [#285](https://github.com/cossacklabs/themis/pull/285), [#303](https://github.com/cossacklabs/themis/pull/303));
- Added a memory test suit, which allows us to keep a closer eye on PHPThemis' memory usage ([#298](https://github.com/cossacklabs/themis/pull/298));
- Added [CLI utils](https://github.com/cossacklabs/themis/wiki/Encrypt-Decrypt-Console-Utils) and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine ([#277](https://github.com/cossacklabs/themis/pull/277), [#293](https://github.com/cossacklabs/themis/pull/293), [#305](https://github.com/cossacklabs/themis/pull/305), [#306](https://github.com/cossacklabs/themis/pull/306)).
## [0.9.6](https://github.com/cossacklabs/themis/releases/tag/0.9.6), December 14th 2017
@@ -1,12 +1,17 @@
project(themis)
cmake_minimum_required(VERSION 3.8)
include_directories(src)
add_definitions("-DNIST_STS_EXE_PATH=tests/soter/nist-sts" -std=gnu99)
file(GLOB SOTER_SOURCE_FILES src/soter/*.c src/soter/openssl/*.c src/soter/ed25519/*)
add_library(soter ${SOTER_SOURCE_FILES})
add_library(soter_shared SHARED ${SOTER_SOURCE_FILES})
set_target_properties(soter_shared PROPERTIES OUTPUT_NAME soter)
target_compile_definitions(soter PRIVATE "DNIST_STS_EXE_PATH=tests/soter/nist-sts")
target_compile_options(soter PRIVATE -std=gnu99)
target_compile_definitions(soter_shared PRIVATE "DNIST_STS_EXE_PATH=tests/soter/nist-sts")
target_compile_options(soter_shared PRIVATE -std=gnu99)
file(GLOB_RECURSE THEMIS_SOURCE_FILES src/themis/*.c)
add_library(themis ${THEMIS_SOURCE_FILES})
@@ -22,3 +27,14 @@ target_link_libraries(soter_test soter crypto)
add_executable(themis_test ${THEMIS_TEST_SOURCE} ${SOTER_SOURCE_FILES})
target_include_directories(themis_test PRIVATE tests)
target_link_libraries(themis_test soter crypto themis)
file(GLOB THEMISPP_SOURCE src/wrappers/themis/themispp/*.hpp)
add_library(themispp ${THEMISPP_SOURCE})
target_link_libraries(themispp soter themis)
set_target_properties(themispp PROPERTIES LINKER_LANGUAGE CXX)
file(GLOB THEMISPP_TEST_SOURCE tests/themispp/*.hpp tests/themispp/*.cpp tests/common/*)
add_executable(themispp_test ${THEMISPP_TEST_SOURCE})
target_include_directories(themispp_test PUBLIC tests src/wrappers/themis)
target_link_libraries(themispp_test themispp themis soter crypto)
set_target_properties(themispp_test PROPERTIES LINKER_LANGUAGE CXX)
@@ -0,0 +1,25 @@
I have:
- [ ] searched open and closed issues for duplicates
----------------------------------------
### Issue description
Describe here the issue that you are experiencing.
### Environment info
**OS:** OS name and version
**Themis version:** 0.0.0
**Installation way:**
- [ ] downloaded tag from github
- [ ] via package manager
- [ ] built from source
**Crypto provider:** OpenSSL / BoringSSL / LibreSSL (v0.0.0)
### Link to example project
<!-- If you can reproduce the problem, please attach the example project so we can investigate it -->
Oops, something went wrong.

0 comments on commit 7297452

Please sign in to comment.