(CCL) - The Common Cryptography Library

The Common Cryptography Library (CCL) is a comprehensive cryptographic library that provides robust encryption and decryption functions using state-of-the-art algorithms.

It supports both symmetric (AES_256_CBC) and asymmetric (ENVELOPE_RSA_AES_256_CBC) cryptographic algorithms as well as HMAC-based mechanisms to ensure data integrity and authenticity. CCL protects critical or business-relevant information from third parties. CCL is also used for the encryption of the WinCC OA panels.

One of the main advantages of CCL is its independence from specific algorithms, which enables decryption without prior knowledge of the encryption algorithm used. In addition, CCL facilitates the deprecation of algorithms (due to security vulnerabilities or weak implementations) while retaining the ability to decrypt previously encrypted data. This feature allows you to focus on the business logic and not on the specifics of the cryptographic ciphers used.

In addition, CCL provides support for extensibility, versioning, error handling, single-layer execution and configuration, making it a versatile and reliable choice for cryptographic operations.

Note: CCL is not supported on the ITC platform.

Use of CCL

This chapter describes what the (CCL) - The Common Cryptography Library offers.

You can now use state-of-the-art crypto functions that use recommended configurations by default. (CCL) - The Common Cryptography Library offers both symmetric and asymmetric encryption with configurations that can be tailored to meet specific requirements. This allows you to focus more on implementing your business logic without having to worry about specific cryptographic algorithms, compatibility and vulnerabilities. Use the config entry useCommonCryptography for activating or deactivating (CCL) - The Common Cryptography Library.

Advantages

From CTRL's point of view, the recently introduced CTRL functions (see decrypt() and encrypt()) for encryption and decryption offer significant improvements. The encryption functions support configuration, while the decryption functions do not require any information about the cipher algorithm used for encryption. From the C++ perspective, completely new interfaces have been introduced that offer comprehensive error handling and configuration options.