MPLAB® Harmony Crypto Library

The Cryptographic Library includes functions to perform encryption, decryption, hashing, authentication, and compression within the embedded application. Random number generation (RNG) functions are also provided.

Block Ciphers

The library provides DES, 3DES, and AES for block cipher needs. Depending on the algorithm in use, CBC and CTR modes are supported.

Public Key Cryptography

The library provides RSA and Elliptic Curve Cryptography (ECC) for Public Key Cryptography, and Diffie-Hellman (DH) for key agreement arrangements.

Hash Functions

The library provides MD5, SHA, SHA-256, SHA-384, and SHA-512 for hashing. These functions do not require keys or initialization vectors (IV).

Random Number Generation Functions

The library provides functions to generate either a single pseudo-random number, or a block of such numbers

Library Interface

The Library Interface routines are divided into various sub-sections, which address one of the blocks or the overall operation of the Cryptographic (Crypto) Library module.

Library Interface Section Description
General Functions Provides an error string function, which takes an error and converts it into human-readable text.
Compression Functions Provides Huffman compression and decompression functions.
MD5 Functions Provides data add, finalize, and initialize MD5 functions.
Random Number Generator Functions Provides get, initialize, and block generate RNG functions.
AES Encryption/Decryption Functions Provides AES encryption and decryption functions.
ECC Encryption/Decryption Functions Provides ECC encryption and decryption functions.
RSA Encryption/Decryption Functions Provides RSA encryption and decryption functions.
Triple DES Encryption/Decryption Functions Provides 3DES encryption and decryption functions.
HMAC Hash Functions Provides HMAC data add, finalize, and set key Hash functions.
SHA Hash Functions Provides SHA data add, finalize, and initialize Hash functions.
SHA256 Hash Functions Provides SHA256 data add, finalize, and initialize Hash functions.
SHA384 Hash Functions Provides SHA384 data add, finalize, and initialize Hash functions.
SHA512 Hash Functions Provides SHA512 data add, finalize, and initialize Hash functions.