Introducing Themis Server: testing environment for Themis


Themis server is a sandbox for developers, who want to test Themis features without spending too much time and effort. You don’t have to deploy client and server, as you can find it on and dive straight into using library, with handy examples. Themis server gradually evolves, so some slight differences in button placement are possible over time (as they happen at the time of writing), yet core functions will remain unchanged. This post contains a brief overview of Themis server features and possible use cases. It will help you build Themis into your apps and debug any errors occurring in the process.

Themis Server screenshot

Themis Server Use-Cases

When would you want to use this server? Take a look at some examples below:

  • When you want to try Themis without writing lots of code. You can simply open our server, copy & paste pre-generated client code, run the server on our side (or copy & paste its code to your side) and see the results of client-server interaction.
  • When you need to check whether you're using Themis right. You can launch the server on our side and debug its interaction with your client until everything works fine.
  • If you suspect that you have some bugs in your code -- you can adapt it to send messages to our server. Log console and output could be extremely useful to test your code against "canonic" implementation.

Themis Tools and Features

Themis allows doing the following operations:

  1. Data encryption for storage. This is done with Secure Cell container, allowing you to input your text and key to receive encrypted text as a result. Yeah, it’s that easy! Secure Cell works in secure seal, token protect and context imprint modes. More details are available here.
  2. Data encryption and signing for simple asymmetric layouts. This is done with Secure Message container, which allows you to generate client-server key pairs and use them to get your data encrypted/decrypted. Very useful for checking if you are using Themis in a correct way. Here is the detailed description of this container.
  3. Data encryption for transmission. Secure Message and Secure Session are exactly what you need. In case you are not sure, which one suits your needs more, follow the links above and read the descriptions , they are really simple and informative!

We combined these containers into an Interactive simulator and Data Simulator tools. Interactive simulator actually launches server on our side, to which you can talk over JSON API, while Data Simulator involves copying and pasting data between Themis Server interface and output of your code.

Interactive Simulator

Interactive Simulator tool uses your personal User ID, generates you a new JSON endpoint (address to talk to via HTTPS API) and can either generate client-server keypair or pick the public key you’ve generated on your side.

Launch Interactive simulator just by pressing the Start button! Simulator provides you with debug console on the lower part of the screen, which shows every successful transaction with the server.

Snippet Generator

Interactive simulator works with every language Themis supports and has a built-in snippet generator tool. The tool generates changing parts of snippet code, depending on keys and endpoint URL, so you can copy-paste just one large chunk of code.

Data Simulator

The second part of Themis Server is Data Simulator tool, which allows working with base64-encoded objects containing Secure Cell or Secure Message data. It enables you to encrypt/decrypt chunks of data, test the keys, payload (context/tag for Secure Cell), etc.

Sum up

We have created Themis Server to assist developers use Themis in a more convenient way. Let us know in Themis Github issues whether you have any problems using it.

Copyright © 2014-2017 Cossack Labs Limited
Cossack Labs is a privately-held British company with a team of data security experts based in Kyiv, Ukraine.