Skip to content

neuroradiology/themis

 
 

Repository files navigation

Join the chat at https://gitter.im/cossacklabs/themis Circle CI

Themis is open-source high-level cryptographic services library for mobile and server platforms, providing secure messaging and secure data storage. Current stable release is 0.9.2, dated 6th of November.

Themis works in most operating systems (see Availability), and is available for Objective C / iOS, Java / Android, Ruby, Python, PHP, C++, Javascript (NodeJS).

Themis provides three important cryptographic services:

  • Secure Message: a simple encrypted messaging solution for widest scope of applications. ECC + ECDSA / RSA + PSS + PKCS#8.
  • Secure Session: session-oriented, forward secrecy messaging solution with better security guarantees, but more demanding infrastructure. ECDH key agreement, ECC & AES encryption.
  • Secure Cell: a multi-mode cryptographic container, suitable for storing anything from encrypted files to database records and format-preserved strings. Secure Cell is built around AES in GCM (Token and Seal modes) and CTR (Context imprint mode).

Themis was designed to provide complicated cryptosystems in easy-to-use infrastructure, suitable for modern rapid development. Themis is based on best modern practices in implementing complicated security systems based on strongest available cryptographic algorithms in their safest forms. It is available for modern mobile and server languages (see below).

Themis is open source, Apache 2 Licensed.

Quickstart

  1. Fetch the repository: git clone https://github.com/cossacklabs/themis.git
  2. Have OpenSSL/LibreSSL + OpenSSL/LibreSSL Dev package (libssl-dev) installed at typical paths: /usr/lib, /usr/include.
  3. Have typical GCC/clang environment installed
  4. Type 'make install' and you're done (most of the cases)
  5. Dive into our wiki for the docs of language of your choice, take a look at docs/examples for examples.

It is really advisable to go the long way and read the docs, but god blesses the brave.

Languages

Themis is available for the following languages:

Availability

Themis supports the following architectures: x86/x64, armv*, various androids

It is checked to compile on:

  • Debian 7.8, CentOS 6.6, CentOS Linux 7.1.1503, Ubuntu 14.04 LTS
  • MS Windows 7, 8, 10
  • OSX 10.10
  • Android 4.4.2
  • Android 4.4.4 / CyanogenMod 11
  • Android 5
  • iOS 7-9, x32/x64

We plan to expand this minuscule availability scope with broader set of platforms. If you'd like to help Themis arrive (or get better) on your favourite platform / language — get in touch.

Tutorials

As long as it is feasible, we'll accumulate list of all tutorials we publish on how to use Themis in different cases here:

Documentation

Project's github wiki contains ever-evolving official documentation, which contains everything from how to use it to ways to contribute to it, with a brief explanation of cryptosystems and architecture behind main Themis library in between.

About

Crypto library for storage and messaging for ObjC, Android, С++, JS, Python, Ruby and PHP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 73.4%
  • HTML 11.3%
  • C++ 5.5%
  • Makefile 3.3%
  • Shell 2.1%
  • PHP 1.1%
  • Other 3.3%