Skip to content

Releases: cossacklabs/themis

0.13.8 - Hotfix for Apple platforms

30 Apr 14:54
0.13.8
ada3015
Compare
Choose a tag to compare

OpenSSL 1.1.1k for iOS/macOS SPM

  • Updated OpenSSL to the latest 1.1.1k for SMP and attached themis.xcframework. (iOS and macOS).
  • New Swift and Objective-C example projects: SPM for iOS and macOS.

Code:

  • Objective-C / Swift

    • Updated OpenSSL to the latest 1.1.1k for SMP and attached themis.xcframework. It is openssl-apple version 1.1.11101.
    • New Swift and Objective-C example projects: SPM for iOS and macOS.
    • Updated SPM examples source code to remove deprecated calls.

0.13.7 - Hotfix for Apple platforms

28 Apr 16:16
0.13.7
68b485b
Compare
Choose a tag to compare

SPM support with XCF.

  • themis is now packaged as xcframework. It is available in the release attached files section.
  • themis now supports SPM.

Code:

  • Added script to generate xcframework for iOS, iOS Simulator and macOS (#789).
  • Added Package.swift file for SPM (#789).

0.13.6 - Hotfix for iOS and macOS

23 Nov 02:28
0.13.6
6921338
Compare
Choose a tag to compare

This is a hotfix for Apple platforms: ObjCThemis and SwiftThemis, running on iOS and macOS, when installed via Carthage or CocoaPods.

  • themis pod is now restored to use dynamic linkage again
  • Resolved errors related to @rpath when using CocoaPods
  • Removed arm64e architecture slice from Carthage builds for iOS which prevented CocoaPods from functioning correctly

Code:

  • Objective-C / Swift

    • CocoaPods will now again link ObjCThemis dynamically into application (#750).
    • Carthage no longer builds arm64e architecture slice (#750).
    • Updated OpenSSL to the latest 1.1.1h-2 (#750).

0.13.5 – Hotfix for macOS with Carthage

12 Nov 16:35
0.13.5
e6a3b05
Compare
Choose a tag to compare

This is a hotfix for Apple platforms: ObjCThemis and SwiftThemis, running on macOS, when installed via Carthage.

iOS platform is not affected. Installations via CocoaPods are not affected too. You can continue using Themis 0.13.4 there.

  • Resolved issues with deploying macOS apps with Apple Silicon support when Themis is installed via Carthage

Code:

  • Objective-C / Swift

    • Fixed code signing issues on macOS with Xcode 12 (#744).

0.13.4 – Hotfix for Xcode 12 and Apple Silicon

29 Oct 13:59
0.13.4
718e7ba
Compare
Choose a tag to compare

This is a hotfix for Apple platforms: ObjCThemis and SwiftThemis, running on iOS and macOS, installed via Carthage or CocoaPods.

  • Resolved critical issues with App Store deployment (see #715)
  • Resolved issues with stable Xcode 12 support (disabled arm64 builds for iOS Simulator)
  • Improved Apple Silicon support (arm64 builds for macOS with Xcode 12.2 beta)
  • Updated OpenSSL to the latest 1.1.1h
  • CocoaPods is now using OpenSSL 1.1.1h by default (again)

Note that this hotfix is not compatible with Xcode 11. (Future releases of Themis will also require Xcode 12+) If you are using Xcode 11, please use older versions of Themis:

  • CocoaPods: pod 'themis', '0.13.0'
  • Carthage: github "cossacklabs/themis" "0.13.0"

See #715, #725 for details.

Code:

  • Objective-C / Swift

    • Switched to test on Xcode 12.0, disable ARM64-iOS-simulator builds for Themis CocoaPods and Themis Carthage (#721, #722, #732, #733).
    • CocoaPods will now link ObjCThemis statically into application (#731, #735).
    • Updated OpenSSL to the latest 1.1.1h (#735).

0.13.3 - hotfix CocoaPods for SwiftThemis and ObjCThemis [iOS, macOS] for Xcode12

12 Oct 11:30
7472f22
Compare
Choose a tag to compare

Updated Themis podspec to be compatible with Xcode12:

  • exclude arm64 architecture (well, temporary);
  • updated iOS/macOS deployment target;
  • updated bitcode settings.

CocoaPods:

iOS:
Xcode 12: use pod themis, "0.13.3". It excludes arm64-iphonesimulator architecture slice for now. Resulting app can be submitted to App Store.
Xcode 11: use pod themis, "0.13.0". It is compatible with Xcode 11, not with Xcode 12.

See #715, #725.

macOS:
If you use macOS, use 0.13.3, and please exclude mac-arm64 for now (set Build Active Architecture Only = YES). This will build correct x86_64 application.

Carthage:

iOS:
Exclude arm64-iphonesimulator architecture slice for now (see #713).

macOS:
If you use macOS, use 0.13.3, and please exclude mac-arm64 for now (set Build Active Architecture Only = YES). This will build correct x86_64 application.

See #725, #713.

0.13.2 hotfix Carthage for SwiftThemis and ObjCThemis

14 Aug 20:09
0.13.2
f6a755c
Compare
Choose a tag to compare

Hotfix for Carthage, removing dysfunctional ObjCThemis.xcodeproj.

Breaking changes and deprecations:

  • ObjCThemis framework built by Carthage is now called themis.framework once again.

Code:

  • Objective-C

    • Breaking changes

      • ObjCThemis framework built by Carthage is now called themis.framework once again (#704).

        ObjCThemis 0.13.0 has initiated renaming of the framework produced by Carthage into objcthemis.framework from its historical name themis.framework. This decision has been a mistake. More information is available in the pull request linked above.

        objcthemis.framework is removed and should not be used.

        Please continue linking your applications to themis.framework. Note as well that starting with ObjCThemis 0.13.1, you do not have to embed openssl.framework anymore when ObjCThemis is installed via Carthage.

0.13.1 hotfix Swift, Objective-C, Go, Node.js, WebAssembly

13 Aug 16:03
0.13.1
4cf9a8d
Compare
Choose a tag to compare

TL;DR:

  • AndroidThemis is now available on JCenter
  • ObjCThemis and SwiftThemis get latest OpenSSL update
  • ObjCThemis and SwiftThemis now require Xcode 11 (or later)
  • Minor security fixes in GoThemis, JsThemis, WasmThemis

Code:

  • Core

    • Improved compatibility with OpenSSL 1.1.1 (#684).
  • Android

    • AndroidThemis is now available on JCenter (#679).
  • Go

    • Fixed panics on 32-bit systems when processing corrupted data (#677).
    • Improved GoThemis package README and documentation (#699).
  • Node.js

    • Minor dependency updates making the world a better place (#680).
  • WebAssembly

    • Minor dependency updates making the world a better place (#680).
  • Swift

    • Updated OpenSSL to the latest 1.1.1g (#692).
  • Objective-C

    • Updated OpenSSL to the latest 1.1.1g (#692).

Infrastructure:

  • AndroidThemis is now available on JCenter (#679).
  • ObjCThemis and SwiftThemis now require Xcode 11 (#692).

0.13.0

08 Jul 13:14
0.13.0
190383a
Compare
Choose a tag to compare

0.13.0, July 8th 2020

TL;DR:

Breaking changes and deprecations:

  • Many languages received Secure Cell API overhaul with parts of the old API becoming deprecated. Refer to individual language sections for details.
  • ObjCThemis installed via Carthage is now called objcthemis instead of just themis (read more).
  • Themis 0.9.6 compatibility is now disabled by default (read more).
  • Themis doesn't support big-endian architectures (read more).
  • Java 7 is no longer supported, breaking Android and Java builds on outdated systems (read more).
  • Python 2 is no longer supported (read more).
  • Serialisation of Secure Session state in JavaThemis is now deprecated (read more).

Code:

  • Core

    • Added support for building with sanitizers like ASan and UBSan, enabled by WITH_ASAN=1 flags (#548, #556).

    • Fixed a number of possible use-after-free conditions (#546).

    • Themis Core is now compiled with -O2 optimizations enabled by default (#543).

    • Themis Core is now compiled with even more paranoid compiler flags (#578).

    • Fixed various edge-case correctness issues pointed out by sanitizers, clang-tidy, and compiler warnings (#540, #545, #554, #570, #597, #613).

    • Improved memory wiping, making sure that sensitive data doesn't stay in memory longer than absolutely necessary (#584, #585, #586, #612).

    • Soter (low-level security core used by Themis)

      • New function soter_pbkdf2_sha256() can be used to derive encryption keys from passphrases with PBKDF2 algorithm (#574).
    • Key generation

      • New function themis_gen_sym_key() can be used to securely generate symmetric keys for Secure Cell (#560).
    • Secure Cell

      • New functions:

        • themis_secure_cell_encrypt_seal_with_passphrase()
        • themis_secure_cell_decrypt_seal_with_passphrase()

        provide Seal mode API that is safe to use with passphrases (#577, #582, #640).

    • Secure Session

      • Fixed serialization issue in secure_session_save() and secure_session_load() methods (#658).
    • Breaking changes

      • Secure Cell compatibility with Themis 0.9.6 is now disabled by default (#614).

        Old versions of Themis have been calculating encrypted data length incorrectly, which made Secure Cells encrypted on 64-bit machines impossible to decrypt on 32-bit machines (see #279 for details).

        Themis 0.10 and later versions include a fix for that issue and a compatiblity workaround that allows to decrypt data encrypted by Themis 0.9.6 on 64-bit platforms. This workaround was enabled by default and could be disabled by setting the NO_SCELL_COMPAT varible.

        Since Themis 0.13 the workaround for Themis 0.9.6 compatibility is disabled by default (as it has performance implications). It can be enabled if needed by compling with WITH_SCELL_COMPAT.

        We are planning to remove the workaround completely after Themis 0.9.6 reaches end-of-life in December 2020. Please use this time to migrate existing data if you have been using Themis 0.9.6. To migrate the data, decrypt it and encrypt it back with the latest Themis version.

      • Themis is known to be broken on big-endian architectures (#623, #592).

        Themis has never committed to supporting machines with big-endian architectures. However, it was expected to accidentally work to some degree on such machines, with certain compatibility restrictions on interaction with little-endian machines.

        Recent changes in Themis Core are known to introduce compatibility issues on big-endian architectures. If you believe you are affected by this change, please reach out to us via [email protected].

  • Android

    See also: Java API updates.

    • Kotlin is now officially supported language on Android (#637).

    • Fixed a crash when decrypting corrupted Secure Cell data (#639).

    • Updated embedded BoringSSL to the latest version (#643).

    • Fixed broken SecureSession#save and SecureSession#restore methods (#658).

    • Breaking changes

      • Android build now uses Gradle 5.6 and requires Java 8 (#633).

        It is no longer possible to build AndroidThemis with Java 7. Please upgrade to Java 8 or later version.

    • Deprecations

      • Unqualified Gradle targets are now deprecated (#633).

        To build Themis for Android, run

        ./gradlew :android:assembleRelease
        

        instead of

        ./gradlew assembleRelease
        

        The unqualified form still works for now, but may break in future releases.

  • C++

    • Secure Cell API updates (#588)

      • ThemisPP now supports passphrase API of Secure Cell in Seal mode:

        #include <themispp/secure_cell.hpp>
        
        auto cell = themispp::secure_cell_seal_with_passphrase("string");
        
        uint8_t[] plaintext = "message";
        
        std::vector<uint8_t> encrypted = cell.encrypt(plaintext);
        std::vector<uint8_t> decrypted = cell.decrypt(encrypted);

        You can safely and securely use short, human-readable passphrases as strings with this new API.

        Existing master key API (themispp::secure_cell_seal and other modes) should not be used with passphrases or passwords. Use master key API with symmetric encryption keys, such as generated by themispp::gen_sym_key() (#561). Use passphrase API with human-readable passphrases.

      • All modes of Secure Cell get a new initialisation API to avoid ambiguity over whether Secure Cell is secured with a passphrase or a master key (since both are effectively byte arrays in C++):

        • themispp::secure_cell_seal_with_key(master_key)
        • themispp::secure_cell_token_protect_with_key(master_key)
        • themispp::secure_cell_context_imprint_with_key(master_key)

        New API has additional benefits:

        • broader range of input types is accepted, including STL-compatible containers such as std::vector, std::array, std::span, C arrays, etc.
        • Token Protect API is much easier to use
        • Secure Cell is now thread-safe
      • Deprecated API

        The following classes are deprecated:

        • themispp::secure_cell_seal_t
        • themispp::secure_cell_token_protect_t
        • themispp::secure_cell_context_imprint_t

        They should be replaced with their _with_key counterparts. In most cases migration should be a trivial renaming but there are caveats with Token Protect mode and iterator usage. Please see #588 for details.

    • New function themispp::gen_sym_key() can be used to generate symmetric keys for Secure Cell (#561, #576).

    • Updated test suite to test C++14 and C++17 (in addition to C++11 and C++03) (#572).

    • Breaking changes

      • get_pub_key_by_id() method of secure_session_callback_interface_t now has to return non-const vector (#540).

        Change your implementation like this:

        -const std::vector<uint8_t> get_pub_key_by_id(const std::vector<uint8_t>& id) override
        +std::vector<uint8_t> get_pub_key_by_id(const std::vector<uint8_t>& id) override
         {
             // ...
         }
  • Go

    • New function keys.NewSymmetricKey() can be used to generate symmetric keys for Secure Cell (#561).
      ...
Read more

0.12.2 hotfix WasmThemis

19 Dec 12:19
0.12.2
Compare
Choose a tag to compare

Fixed an issue in WasmThemis which caused an error when packaging with webpack (#568).