(released on 14.12.2017)

Latest News

Unsurprisingly, 0.9.5 came out eventually. Today.2017-09-14 20:25:28

Themis 0.9.4 is out now!2016-11-22 18:09:17

Themis 0.9.3 is released!2016-05-24 16:59:33


0.9.62017-12-14 11:13:51

TL;DR: OpenSSL 1.1 support.



  • 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).


  • 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.52017-09-13 12:03:34


Mostly usability fixes for wrappers.


  • You can now download pre-built Themis packages from our package server.
  • Enhanced building process for MacOS (working now!) (https://github.com/cossacklabs/themis/issues/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!


↺

0.9.42016-11-22 18:31:44

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

↺ Read more... 15:31:54

Updating podspec to be compatible with CocoaPods 1.0

↺

Recent builds


2019-03-23 02:04:21

See more builds


429a6ee2e8d47b27...2019-03-23 02:01:21 ilammy

Drop SECURE_COMPARATOR_ENABLED usage (#429) * Drop SECURE_COMPARATOR_ENABLED from Podfiles * Drop SECURE_COMPARATOR_ENABLED from headers This feature flag is no longer supported so there is no need to do special dance during imports. Secure Comparator is now always a part of Obj-C Themis so it's already imported.

ef592257ccce00fd...2019-03-21 16:52:23 ilammy

Carthage code samples for iOS and macOS (#428) This adds Xcode projects and code samples using Carthage packages of Themis. Since we already have CocoaPods examples, new ones made the directory structure a bit messy. I have moved the code around so that it's a bit easier to navigate: docs └── examples ├── objc │ ├── iOS-CocoaPods (moved) │ ├── iOS-Carthage (new) │ └── macOS-Carthage (new) └── swift ├── iOS-CocoaPods (moved) ├── iOS-Carthage (new) └── macOS-Carthage (new) All samples use the same code, just copy-pasted around. In order to initialize Carthage project one must run carthage bootstrap in the project directory to pull the dependencies. We pin Themis version to the current "master". There is one caveat with new Objective-C samples: they import Themis as #import <themis/themis.h> while CocoaPods samples use the following form: #import <objcthemis/objcthemis.h> CocoaPods use some wild magic for that imports to be possible while Carthage projects use the resulting framework name. I have not found an easy way around that so it seems we'll have to live with this discrepancy.

3dc13db1002dc8bb...2019-03-21 15:53:33 ilammy

Update Carthage dependencies Pin a newer OpenSSL version that uses correct version number, suitable for App Store submission.

a415c1da65105ad4...2019-03-19 15:03:07 ilammy

Xcode project for Carthage (#427) This adds an Xcode project to build Themis, enabling distribution via Carthage. This requires an Xcode project in the root repo directory with shared build schemes. As it was easier to do, and as it probably provides better debug information for Xcode users, Themis build for Xcode is a completely new one. We *do not* (re)use existing Makefiles, but this should be possible in theory. However, currently the Xcode project replicates the existing build and compiles Soter, Themis, and Obj-C Themis files manually. Themis is compiled with OpenSSL as a backend. We pull in the dependency via Carthage as well. Currently we use our own fork of the library, but later it will be updated to the proper upstream once Carthage support lands there. The project file provides two distinct targets and build schemes: for macOS and iOS, and their frameworks have slightly different structure. Though, we reuse as many files as possible. For example, the umbrella header Themis.h is the same for both platforms. Note that the build schemes are *shared*. This is important for Cartage. Actual framework names are in lowercase: themis.framework. This is for compatibility with existing CocoaPods builds which use such naming. We do not code-sign the resulting frameworks. It is expected that the applications using Themis will sign all external framework code that they use. Finally, framework bundles use 'stuttering' identifiers like "com.cossacklabs.themis.Themis". This is because later we will need to name our documentation examples and it would be nice to put them under the same namespace "com.cossacklabs.themis". The framework version is provisional 0.10.5 (which is actually preview of 0.11).

419d5a3c2ca83d52...2019-03-13 11:26:15 ilammy

Deprecate incorrectly named API (#424) * Rename cell.CELL_MODE_* constants * Rename compare.COMPARE_* constants * Rename keys.KEYTYPE_* constants * Rename session.STATE_* constants - Provide new names that don't offend golint - Use new names throughout the code base - Mark the old names deprecated and redefine constants using new values * Rename session.SecureSession.GetRemoteId method - Provide new name that don't offend golint - Use the new name throughout the code base - Mark the old method deprecated and reimplement it using the new one * Use C constants directly It turns out that CGo actually does export C defines as Go constants, therefore we don't need to use intermediate variables for Secure Comparator. Previous code actually does not compile with Go 1.9.2 that we have on CI, but it is fine with my Go 1.12. The new code is fine in both environments.

Pull requests

#430 Update Carthage dependencies 2019-03-22 13:30:02ilammyUpdate Carthage dependencies

#425 Remove deprecated Gothemis API (0.11) 2019-03-12 14:22:55ilammyRemove deprecated Gothemis API (0.11)