All Versions
21
Latest Version
Avg Release Cycle
98 days
Latest Release
338 days ago

Changelog History
Page 2

  • v0.11.2 Changes

    June 25, 2019

    ๐Ÿš‘ This is not a real release, but a hotfix.

    ๐ŸŽ This tag is created for Themis Carthage only. The only changes are inside Cartfile and affect Themis Carthage users (iOS/macOS).

  • v0.11.1 Changes

    April 01, 2019

    ๐Ÿš€ 0.11.1, April 1st 2019

    TL;DR: Rust-Themis can now be installed entirely from packages (repositories and crates.io), without building anything from source.

    Code:

    Rust

    ๐Ÿ‘Œ Improvements in lookup of core Themis library (#444)

    Minor changes in dependencies (#443)

    Infrastructure:

    • ๐Ÿ›  Minor fixes in packaging process (#442)
  • v0.11.0 Changes

    March 28, 2019

    ๐Ÿš€ 0.11.0, March 28th 2019

    TL;DR: Added Rust Themis, added Carthage distribution for iOS and Maven distribution for Android. Improved Secure Message API and propagated it to all our language wrappers.

    โœ… We found that Themis is now recommended by OWASP as data encryption library for mobile platforms.

    ๐Ÿ’ฅ Breaking changes: We renamed rubythemis to rbthemis as a beginning of a tradition of gentle deprecations, with timely warning of all the users that can potentially be affected. We removed themis_version() function that allowed checking Themis' version at run-time (with no replacement function).

    Code:

    Core

    ๐Ÿ›  Fixes in Soter (low-level security core used by Themis):

    - 
    

    ๐Ÿ›  Fixed possible null pointer deference caused by the misusage of short-circuit evaluation. Huge thanks to @movie-travel-code for pointing out (#315, #314).

    - 
    

    ๐Ÿ›  Fixed crash in Secure Message when RSA keys are used incorrectly (swapped or empty) โ€“ a shoutout for @ilammy and @secumod for fixing this (#334).

    - 
    

    ๐Ÿ›  Fixed issue with RSA key generator silently truncating private keys โ€“ our gratitude going out to @ilammy and @secumod again (#335).

    - 
    

    ๐Ÿ›  Fixed crash that occured on re-using Secure Comparator with BoringSSL โ€“ thanks to @ilammy and @secumod for this fix (#347).

    - 
    

    ๐Ÿ›  Fixed overflow during Secure Cell decryption in Seal mode - thanks to @ilammy and his skills in fuzz testing (#367).

    - 
    

    ๐Ÿ‘Œ Improved the test suite to catch more corner cases, including with OpenSSL-specific issues (#323, #319).

    Secure Session

    - 
    

    โž• Added additional safety tests for Secure Session: return error if clientID is empty (thanks @deszip for asking tough questions and mis-using clientID) (#386).

    - 
    

    Described thread safety code practices when using Secure Session.

    Secure Message

    - 
    

    โšก๏ธ Updated Secure Message API: divided the wrap function into encrypt and sign, and the unwrap function into decrypt and verify. The new API has more intuitive naming and should be harder to misuse, with encrypt/decrypt and sign/verify API clearly named and separated.

    A common mistake with the old API was that users could accidentally use sign/verify API instead of encryption because they didn't provide a private key. The new API features more strict checks and prevents this kind of mistake.

    This change doesn't affect the language wrappers you are using, so no code changes are required from you.

    ๐Ÿ“š Documentation for the new API calls is available in the Wiki documentation and for each language separately (in their Howtos).

    (#389).

    - 
    

    ๐Ÿ›  Fixed a potential memory leak in Secure Message encryption and decryption (#398).

    Code quality

    - 
    

    Cleaned up circular dependencies in header files. This change has made the code cleaner and the compilation time faster (#392).

    - 
    

    ๐Ÿ‘Œ Improved code quality by fixing warnings from various compiler flags (-Wall -Wextra -Wformat-security -Wnull-dereference -Wshift-overflow and so on) (#377).

    - 
    

    โœ… Formatted the code using clang-format and clang-tidy, added automated formatting for core and tests (#418, #399, #397, #396, #395).

    Other changes

    - 
    

    ๐Ÿ‘Œ Improved and refactored our Great Makefile to be more stable, more user-friendly, and to support OS-specific issues (#417, #413, #348, #346, #345, #343, #321).

    - 
    

    โœ‚ Removed themis_version() function and all related API for querying Themis and Soter versions at run-time. There is no replacement for it and this is obviously a breaking change (#388).

    Rust

    Introduced Rust Themis wrapper, all work done by brilliant @ilammy!

    ๐Ÿ“ฆ Rust Themis supports the same functionality as other Themis wrappers: Secure Cell, Secure Message, Secure Session, and Secure Comparator. Rust Themis package is available through crates.io, examples are stored in docs/examples/rust, the HowTo guide is available in Wiki.

    (#419, #405, #403, #390, #383, #382, #381, #380, #376, #375, #374, #373, #372, #365, #363, #362, #358, #357, #356, #353, #349, #340).

    ๐ŸŽ iOS and macOS

    โž• Added Carthage support. Now users can add Themis to their Cartfile using github "cossacklabs/themis".

    ๐Ÿ“„ More details available in Objective-C Howto and Swift Howto on wiki. Example projects available in docs/examples/objc and docs/examples/swift/ folders.

    (#432, #430, #428, #427).

    โž• Added BoringSSL support, now users can select which crypto-engine they want to include. This change affects only Themis CocoaPod: users can add Themis based on BoringSSL to their Podfile using pod 'themis/themis-boringssl' (#351, #331, #330, #329).

    โž• Added bitcode support. This affects only Themis CocoaPod that uses OpenSSL โ€“ thanks @deszip and @popaaaandrei (#407, #355, #354).

    โž• Added compatibility for Swift frameworks. Now Themis can be used directly from Swift without Bridging header file, kudos to @popaaaandrei for pointing on this out (#416, #415).

    โšก๏ธ Updated code to use the latest Secure Message API (see description of core changes above). This change doesn't affect user-facing code so no code changes are required from users (#393).

    โšก๏ธ Updated error codes and error messages for all crypto systems, now errors and logs are more user-friendly and understandable (#394, #393).

    ๐Ÿ‘Œ Improved code quality here and there (#317).

    Dropped feature flag SECURE_COMPARATOR_ENABLED because it's redundant: Secure Comparator is enabled by default (#429).

    ๐ŸŽ macOS specific

    • Added Homebrew support for Themis Core. Now users can install Themis Core library using brew tap cossacklabs/tap && brew update && brew install libthemis. This is useful when you're developing on macOS.

    ๐ŸŽ More details can be found in the Installation guide.

    C++

    ๐Ÿ‘Œ Improved Secure Session memory behavior (now users can move and copy Secure Session objects and callbacks) (#370, #369).

    ๐Ÿ‘ Allowed to link ThemisPP as header-only library by adding "inline" functions โ€“ thanks @deszip for pushing us. Check for detailed instructions in C++ wiki (#371).

    Added support of smart pointer constructors for Secure Session, now users should use std::shared_ptr<secure_session_callback_interface_t> constructor (#378).

    โž• Added functions for key validation: now you can check if keypairs are valid before using it for encryption/decryption (#389).

    โšก๏ธ Updated test suite to test C++03 and C++11 (#379).

    โšก๏ธ Updated error codes and error messages for all crypto systems, now errors and logs are more user-friendly and understandable (#385).

    Formatted code using clang-format rules and implemented some clang-tidy recommendations (#410, #404).

    Java

    โšก๏ธ Updated Secure Message API: separated function wrap into encrypt and sign, and function unwrap into decrypt and verify. Old functions are still available, but will be deprecated eventually (#389).

    Significantly improved Themis usage examples for Desktop Java - thanks to @Dimdron #3.

    Formatted JNI code using clang-format rules and implemented some clang-tidy recommendations (#420).

    Android

    โž• Added Maven distribution (#361).

    ๐Ÿ”ง The new installation process requires adding only two lines to the Maven app configuration (instead of manually re-compiling the whole Themis library)!
    โšก๏ธ See the updated HowTo guide in Wiki.

    Significantly improved Themis usage examples for Android - thanks to @Dimdron #3.

    Significantly improved Secure mobile websocket example - thanks to @sergeyzenchenko #4.

    Formatted JNI code using clang-format rules and implemented some clang-tidy recommendations (#420).

    Go

    โšก๏ธ Updated code to use the latest Secure Message API (see the description of core changes above). This change doesn't affect user-facing code so no code changes are required from users (#400).

    ๐Ÿ‘• Formatted code and fixed gofmt and golint warnings (#426, #424, #432, #422).

    Node.js

    ๐Ÿ›  Fixed jsthemis to be compatible with Node 10, huge thanks to @deszip (#327, #326).

    โšก๏ธ Updated error codes and error messages for all crypto systems, now errors and logs are more user-friendly and understandable (#384).

    ๐Ÿ›  Fixed memory corruption tests on i386 systems (#408).

    Formatted native extension code using clang-format rules and implemented some clang-tidy recommendations (#412).

    PHP

    - Updated PHP installer to use the latest Composer installer (#360, #328).

    Python

    โšก๏ธ Updated code to use the latest Secure Message API (see description of core changes above). This change doesn't affect user-facing code so no code changes are required from users (#401).

    โšก๏ธ Updated error codes and error messages for all crypto systems, now errors and logs are more user-friendly and understandable (#401).

    ๐Ÿ’Ž Ruby

    โšก๏ธ Updated code to use latest Secure Message API (see description of core changes above). This change doesn't affect user-facing code so no code changes are required from users (#402).

    โšก๏ธ Updated error codes and error messages for all crypto systems, now errors and logs are more user-friendly and understandable (#402).

    ๐Ÿ—„ Deprecated rubythemis in favor of rbthemis. Users should use require 'rbthemis' in their projects (#434).

    โœ… Tests and other things

    โž• Added tools for fuzzing testing and tests on Themis Core (#421, #368, #366, #364).

    โšก๏ธ Updated BoringSSL submodule configuration to use Clang while building (#352).

    โšก๏ธ Updated NIST test suite: improved readability, maintainability, and output of NIST STS makefile, added build files to gitignore (#414).

    ๐Ÿ“„ Docs:

    Described the new Secure Message API: how we divided the wrap function into encrypt and sign, and the unwrap function โ€” into decrypt and verify to make it more obvious for the users.

    Described thread safety code practices when using Secure Session.

    ๐Ÿ‘Œ Improved installation guides for numerous languages.

    Infrastructure:

    โž• Added Homebrew support for Themis Core. Now users can install Themis Core libraby using brew tap cossacklabs/tap && brew update && brew install libthemis. This is useful when you're developing on macOS. More details can be found in the Installation guide.

    โž• Added installation guide on using Docker container as a building environment for Themis: if you can't download Themis Core from packages, feel free to use Docker container for this.

  • v0.10.5

    March 21, 2019
  • v0.10.0 Changes

    February 06, 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).

    ๐Ÿ’Ž Rubythemis has breaking changes for Secure Cell Token Protect mode (#281). We added checks for other language wrappers to make sure this won't happen again (#282, #283).

    Check the Migration Guide for more details.

    ๐Ÿ“„ Docs:

    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 guide for more details and usage description/guide.
    • โž• Added Integration test suit 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, #299).

    Code:

    • Core:
      • Fixed incompatibility issue that existed in Secure Cell between x32 and x64 machines (#279);
      • Added C examples for using buffer API in Secure Session (#271);
      • Fixed possible SigFault in Secure Message at the point of providing an incorrect private key path (#286).
    • C++ wrapper:
      • Added a set of unit tests (#292).
    • Android wrapper :
      • simplified Android build by providing a ready-to-use Docker container. No need to compile BoringSSL manually now! (#273 by @secumod).
    • iOS wrapper:
      • Updated Secure Comparator definitions and provided code samples (#287, #288).
    • GoThemis:
      • Added get_remote_id function, which is making SecureSession easier to use (#272);
      • Added CLI utils and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine (#277, #293, #305, #306).
    • JSThemis:
      • Added a separate installation step in Makefile. Now you can install jsthemis via make jsthemis_install (#302);
      • Added CLI utils and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine (#277, #293, #305, #306).
    • ๐Ÿ’Ž RubyThemis:
      • Fixed arguments' order for Secure Cell in the Token Protect mode, which caused incompatibility with older versions of rubythemis (#281). Please check the migration guide for the details;
      • Added CLI utils and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine (#277, #293, #305, #306)
    • PyThemis:
      • Improved the installation process via Makefile for python3 users (#300);
      • Added CLI utils and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine (#277, #293, #305, #306).
    • PHPThemis:
      • Added support of PHP 7.0, 7.1, 7.2 (#278, #280);
      • Added a package for phpthemis. Now you don't need to compile it from sources. See the installation PHP guide for more details;
      • Improved unit tests. Now it's easy to run tests because all the dependencies are handled by a php-composer (#284, #285, #303);
      • Added a memory test suit, which allows us to keep a closer eye on PHPThemis' memory usage (#298);
      • Added CLI utils and integration tests that allow you to test Secure Cell, Secure Message, and Key generation on your local machine (#277, #293, #305, #306).
  • v0.9.6 Changes

    December 14, 2017

    TL;DR: OpenSSL 1.1 support.

    ๐Ÿ“„ Docs:

    Infrastructure:

    • Removed support for Ubuntu Precise.
    • ๐Ÿ›  Fixed .rpm package versioning (#240).
    • โž• Added a handy command for preparing and running of all the tests make test (#243).
    • โž• Added small changes and updates into Makefile to make it even better and fixed the installing dependencies (#236, #239, #250).

    Code:

    • Core:
      • added OpenSSL 1.1 support (#208).
    • Android wrapper:
      • fixed Secure Cell in token protect mode (#251);
      • fixed casting warnings in JNI code (#246).
    • iOS wrapper:
      • updated wrapper to be compatible with Swift4 (#230);
      • added nullability support (#255);
      • made the NSError autoreleasing (#257, #259) from @valeriyvan;
      • fixed warnings that appeared due to renaming error.h files (#247);
      • updated and refactored tests (#231, #232).
    • GoThemis:
      • added compatibility with old Go (1.2) (#253);
      • fixed tests (#261).
    • JSThemis:
      • fixed installation path for macOS (#237, #238).
    • PyThemis:
      • fixed compatibility with version 0.9.5 (#241), pushed as a separate package 0.9.5.1.
  • v0.9.5 Changes

    September 13, 2017

    ๐Ÿ”„ Changelog:

    ๐Ÿ›  Mostly usability fixes for wrappers.

    Infrastructure:

    • ๐Ÿ“ฆ You can now download pre-built Themis packages from our package server.
    • ๐ŸŽ Enhanced building process for MacOS (working now!) (#215).
    • Enhanced building process for Debian 9.x (working even better now!).
    • ๐Ÿ“š Updated documentation and examples to make it easier to understand.
    • ๐Ÿ‘ท Now we use Bitrise as a separate CI for iOS wrapper.
    • โœ… Test and code coverage are automagically measured now!

    Code:

    • Core: disabled SHA1 support.
    • Secure Comparator: magically improved code readability (#196, #195).
    • iOS wrapper: added support of dynamic frameworks and bitcode (#222, #219, #205).
    • Go wrapper: refactored custom error (themisError) type.
    • PHP wrapper: updated tests.
    • PyThemis: considerably improved example projects.
  • v0.9.4 Changes

    November 22, 2016

    ๐Ÿš€ This is tiny intermediary release to lock ongoing changes in stable form for all languages:

    • BoringSSL support on Android and Linux
    • ๐Ÿ›  Fixed some leaks and code styling problems (thanks to @bryongloden)
    • โšก๏ธ Memory management updates for stability in languages, which rely on sloppy GC
    • ๐Ÿ›  Fix Themis build errors under certain conditions
    • Secure Comparator examples for many languages
    • Swift3 support + numerous enhancements from @valeriyvan, thanks a lot!
    • GoThemis : fixed rare behavior in Secure Session wrapper
    • GoThemis examples
    • JsThemis syntax corrections and style fixes
    • โœจ JsThemis Nan usage to enhance compatibility
    • More and better Themis Server examples
    • Enhanced error messages (now with proper spelling!)
    • Corrections for RD_Themis
  • v0.9.3 Changes

    May 25, 2016

    ๐Ÿ”„ Changelog:

    Infrastructure:

    • Lots of new high-level language wrappers
    • ๐Ÿ“š Enhanced documentation
    • Lots of various demo projects
    • Updated Themis Server
    • ๐Ÿ‘‰ Better make system verbosity (now you can actually see what succeeded and what didn't)
    • ๐Ÿ— Infrastructure to build Java on all platforms

    Code:

    • iOS wrapper now has umbrella header.
    • We added Swift language examples and howto.
    • Themis wrapper for Go language: howto (examples coming soon).
    • Themis wrapper for NodeJS : examples and howto.
    • ๐Ÿš€ Google Chrome-friendly spin-off called WebThemis was released.
    • Themis wrapper for C++ : examples and howto.
    • Secure Comparator got serious updates to eliminate possible security drawbacks pointed out by cryptographic community.
  • v0.9.3.1 Changes

    August 24, 2016

    โšก๏ธ Updating podspec to be compatible with CocoaPods 1.0