(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-01-17 21:48:31



2019-01-17 21:46:30

See more builds


d2e5f252b4298902...2019-01-12 13:32:38 ilammy

Initial Rust binding (#340) This adds initial Rust binding for Themis. The code comes from here, version 0.0.2: https://github.com/ilammy/rust-themis I could have transferred the whole git history, but that's too much of a bother and I don't think anybody would be interested in it that much. If you wish to read the older commit messages you can always look into the original repo. Not very convenient but that's at least something. The core repository layout is a bit different from a traditional one for Rust projects. I have moved the files into appropriate places and adapted the Cargo.toml file to that. Importantly, it now requires an `include` directive so that published crates include only Rust code. Here's the current layout of Rust code: . ├─ Cargo.toml - root Cargo.toml file ├─ docs/examples │ └─ rust - Rust wrapper examples ├─ src/wrappers/themis │ └─ rust - root of the "themis" crate │ ├─ libthemis-sys - root of the "libthemis-sys" crate │ └─ src - Rust wrapper source code └─ tests └─ rust - Rust wrapper tests The Cargo.toml file is placed in the root directory so that all usual Cargo commands work from there after a fresh checkout. They do work indeed, but the Rust binding is not integrated into the core build system. We'll improve that later. The links throughout the docs and Cargo.toml files have been updated to point to Cossack Labs repo. I have also removed TravisCI badges because Rust wrapper is going to use CircleCI just like the other bindings. I have kept the original README files. These are used when publishing on crates.io and contain Rust-specific instructions. The LICENSE files in Rust wrappers are also kept intact in accordance with item 4.a of the Apache 2.0 license. As for licensing of this contribution, I'm not a lawyer, but Apache license gives the same rights to the original licensor as well as any future contributors. That's why I did not bother updating all the boilerplate comments all over the code. They still assign copyright of Rust code to "rust-themis developers". By submitting this code to the core repository the developers agree to keep the Apache 2.0 license for it, as per item 5 of the license. There are no separate prior agreements other than that.

d9053774b6f44d9e...2019-01-10 13:55:39 shadinua

Fix redirection clause (#348)

d365850bc779a54d...2019-01-03 15:11:20 secumod

Merge pull request #347 from secumod/master Return SOTER_INVALID_PARAMETER if the caller tries to reuse a hash context after finalising

ef3fd0d51ddf626a...2018-12-26 23:12:40 secumod

Return SOTER_INVALID_PARAMETER when the caller tries to reuse a hash context after finalising Although it did not crash for OpenSSL backend before, this is to bring it in line with BoringSSL and to make error codes consistent.

94f0ca53b2eec156...2018-12-26 23:06:37 secumod

Replace EVP_DigestFinal_ex with EVP_DigestFinal function for OpenSSL backend The naming is confusing: actually EVP_DigestFinal does more than EVP_DigestFinal_ex: it calls EVP_DigestFinal_ex internally, but also does some additional cleanups and zeroing memory for security. This also brings this in line with the BoringSSL backend.

Pull requests

#349 Update Rust binding to v0.0.3 2019-01-17 21:45:20ilammyUpdate Rust binding to v0.0.3