Cryptosystem
Although there are strict definitions of what is a cryptosystem, in practice it is still rather different depending on the point of view.
From wikipedia, a cryptosystem refers to a suite of cryptographic algorithms needed to implement a particular security service, most commonly for achieving confidentiality. We agree that most of the time term cryptography is associated with data encryption (confidentiality). Nowadays, however, driven by continuous growing complexity of IT systems in use and enlargement of possible security attack vector space, cryptography is much more than that. Generally, cryptography is now associated with {confidentiality, integrity, authentity} tuple.
Cryptosystems and cryptoalgorithms
A cryptoalgorithm is a formal description of how to process the original data to get required result (ciphertext - for confidentiality, message authentication code - for authentity etc). It is a step-by-step set of operations to be performed. Like any other algorithm, it has input and output.
A cryptosystem, as stated above, is a suite of cryptoalgorithms. Thus it may be a combination of one or more algorithms, aimed to implement a security service. This implies that a particular cryptosystem is designed to support specific security use-case, so cryptosystems more closely reflect real-world security requirements. Apart from cryptoalgorithms a cryptosystem may also include auxiliary information, guidelines, restrictions etc to better support its use-case. For example, AES as a cryptoalgorithm is just a description of how to combine input data and key to produce a ciphertext. But, AES as a standalone cryptosystem, should probably also include guidelines for key generation, requirements for keys (randomness, uniform distribution, weak keys) and some description of desired operating environment.
So, a modern cryptosystem would probably consist of some of these components (depends on use-case): key agreement scheme encryption scheme signature scheme integrity scheme * support routines: key generation, derivation functions, data format etc
Themis cryptosystems
In Themis we aimed our cryptosystems to support modern real-world security scenarios. Also, we tried to make them as simple as possible to use, even for an inexperienced developer, so that amount of moving parts, which could be broken and cryptosystem's security could be compromised, is minimized.
Please, check our guidelines and examples for determining which one(s) to use in your specific case. If you have any doubts, don't hesitate contact us or ask support from our community.