/*!
@defgroup mmcau MMCAU Peripheral Driver
@details The mmCAU software library uses the mmCAU co-processor that is connected to the ARM Cortex-M4/M0+ Private Peripheral Bus (PPB).
In this chapter, CAU refers to both CAU and mmCAU unless explicitly noted.
# Purpose {#MMCAUPurpose}
The following chapter describes how to use the mmCAU software library in any application to integrate a cryptographic algorithm or
hashing function supported by the software library. NXP products supported by the software library are MCU/MPUs.
Check the specific Freescale product for CAU availability.
# Library Features {#MMCAULF}
The library is as compact and generic as possible to simplify the integration with existing cryptographic software.
The library has a standard header file with ANSI C prototypes for all functions: "cau_api.h". This software library is thread safe only if CAU registers
are saved on a context switch. The mmCAU software library is also compatible to ARM C compiler conventions (EABI).
All pointers passed to mmCAU API functions (input and output data blocks, keys, key schedules, and so on) are aligned to 0-modulo-4 addresses.
For applications that don't need to deal with the aligned addresses, a simple wrapper layer is provided. The wrapper layer consists of the "fsl_mmcau.h" header file
and "fsl_mmcau.c" source code file. The only function of the wrapper layer is that it supports unaligned addresses
.
The CAU library supports the following encryption/decryption algorithms and hashing functions:
Crypto Algorithms | AES128 AES192 AES256 |
cau_aes_set_key |
cau_aes_encrypt | ||
cau_aes_decrypt | ||
DES/3DES | cau_des_chk_parity | |
cau_des_encrypt | ||
cau_des_decrypt | ||
Hashing Functions | MD5 | cau_md5_initialize_output |
cau_md5_hash_n | ||
cau_md5_update | ||
cau_md5_hash | ||
SHA1 | cau_sha1_initialize_output | |
cau_sha1_hash_n | ||
cau_sha1_update | ||
cau_sha1_hash | ||
SHA256 | cau_sha256_initialize_output | |
cau_sha256_hash_n | ||
cau_sha256_update | ||
cau_sha256_hash |
File | Description |
cau_api.h | CAU and mmCAU header file |
lib_mmcau.a | mmCAU library |
The header file and lib_mmcau.a must always be included in the project.
*/