Skytale is a high-level cryptographic and authentication library for C++. It is based on Crypto++ for all the low-level cryptographic operations and on libiris for basic network communication. Its main goals are strong security, simplicity, and usability.
Please note that Skytale is still under heavy development and new features are introduced constantly, so do not consider it stable at this time for production environments. Use it for testing purposes only.
To build Skytale you need ton install Crypto++ library first. Please refer to this link.
To build Skytale just type:
make
To build a development version of Skytale with support for debugging
symbols type:
make dev
To build only the tests type:
make tests
To install the Skytale library, run the following as root:
make install
To remove the Skytale library type as root:
make remove
We have included several tests which check whether the Skytale library
works correctly. Check the tests folder for details. Note that at
this point of development new tests are added to this folder constantly.
- Encryption: The library supports public-key based and symmetric encryption. For public-key encryption it uses the RSA algorithm, while for symmetric key encryption it uses the AES algorithm.
- Signature/Verification: The library supports private-key based signatures. For this reason it relies on RSA and Signature Scheme with Recovery (PSSR).
- Message digests: The library support the generation and validation of message digests. Message digests rely on SHA256.
- Hashing: Hashes of public keys are also supported. The user can choose one of the following hash algorithms: SHA256/SHA384/SHA512/RIPEMD128/RIPEMD160/RIPEMD256/RIPEMD320/ MD5/CRC32.
- Encoding/Decoding: The library provides an encoder object which you can use to pack multiple variables of different types (e.g. strings and integers) into a string. You can use a decoder object to load the encoded string and get back its contents one by one with the same order you placed them into the encoder.
- Authentication: The library provides two secure endpoints: SecureClient for clients and SecureServer for servers. These endpoints can securely communicate each other by first performing authentication and then by encrypting and decrypting the sent and received data.
To use the Skytale library you need to include #include <skytale/xxxx.h
into your C++ source file. The xxxx part can be 'encryption', 'digest', 'authentication'. Then,
providing you have installed Skytale and Crypto++ into your system, you can build your
application as follows:
$(CC) -o application_binary application.cc -lskytale -lcryptopp
The initial developer of Skytale is Giorgos Kappes. Feel free to
contribute to the development of Skytale by cloning the repository:
git clone https://github.com/geokapp/Skytale.
You can also send feedback, new feature requests, and bug reports to geokapp@gmail.com.
The library is currently under heavy development.