Overview

emLib is a family of single-purpose software modules for cryptography and data integrity that runs on both embedded targets and PC applications. It includes AES and DES encryption as well as CRC and ECC routines, which make it suitable for a wide range of use cases.
Implemented entirely in ANSI-C, emLib is optimized for high performance and minimal memory consumption. Standard test patterns and validation code ensure correct application-programming-interface operation on any system.
Key features

Simplicity and consistency
emLib's API is simple, consistent, and easy to use across all modules. The same API can be used in PC applications and embedded targets, which simplifies development and testing procedures.

High speeds, minimal space
emLib delivers high speeds, but requires only minimal memory space, making it optimal for resource-constrained embedded systems. It also includes optimization code and the AES algorithm for protecting sensitive data.

Cross-platform flexibility
Because it is written in ANSI-C, emLib is easily ported to virtually any CPU or architecture. It works with devices that range from 8 to 64 bits in size.
How emLib works
emLib consists of independent modules that can be added to a project as needed. Each module uses a consistent API, and this allows users to initialize with the required parameters, process data, and retrieve results. Since all memory is provided by an application, resource consumption is predictable.
Modules

Cryptographic modules
AES module
An implementation of the AES 128-bit and 256-bit algorithm that includes chained block processing for en- and decryption of more than 16 bytes of data.
DES module
An implementation of the DES (56-bit) algorithm that includes CBC for processing more than 8 bytes of data. DES functions can be called multiple times to achieve increased security (TDES, triple-DES).

Data-integrity modules
CRC Library
Handles arbitrary polynomials up to 32 bits wide in both normal and bit-reversed form. In addition to providing generic CRC functions, emLib CRC features optimized implementations for popular CRC polynomials, including CRC-CCITT, CRC-16, and CRC-32.
ECC library
Provides routines for the detection and correction of multiple bit errors, and includes implementations for 4-, 8-, 24- and 40-bit error correction.
Licensing

emLib is available under various Embedded Software License models and delivered in source-code packages. With a wide range of licensing options, emLib can fulfill both commercial and technical requirements.
All licenses are obtained through one-time payments. emLib is royalty free and not subscription based, meaning that software a part of equipment expenses, keeping costs static.
* Applies only to a second license and any additional license(s) purchased for the same product under the Single Product License and Single Developer License.
Friendly License
emLib is also available under SEGGER's Friendly License, which allows free-of-charge use for non-commercial, evaluation, and educational purposes. With this license, the product is fully functional and there are no technical limitations. To download the license, please visit https://www.segger.com/downloads/emlib/.
Get in touch with us
Have questions or need assistance? Our Embedded Experts are here to help!
Reach out to us for:
- Licensing quotes
- Technical inquiries
- Project support