This is an updated release of the Kinetis MMCAU security function library.
This release:
- new asm-cm0p library created, optimized for ARMv6-M ISA
- minor improvements to asm-cm4 library, optimized for ARMv7-M ISA
This release contains the following structure for the mmcau directory:
README.txt (this file)
asm-cm0p
|-- cau_api.h
|-- lib_mmcau-cm0p.a
|-- lst
| |-- mmcau_aes_functions.lst
| |-- mmcau_des_functions.lst
| |-- mmcau_md5_functions.lst
| |-- mmcau_sha1_functions.lst
| `-- mmcau_sha256_functions.lst
`-- src
|-- cau2_defines.hdr
|-- mmcau_aes_functions.s
|-- mmcau_des_functions.s
|-- mmcau_md5_functions.s
|-- mmcau_sha1_functions.s
`-- mmcau_sha256_functions.s
asm-cm4
|-- cau_api.h
|-- lib_mmcau.a
|-- lst
| |-- mmcau_aes_functions.lst
| |-- mmcau_des_functions.lst
| |-- mmcau_md5_functions.lst
| |-- mmcau_sha1_functions.lst
| `-- mmcau_sha256_functions.lst
`-- src
|-- cau2_defines.hdr
|-- mmcau_aes_functions.s
|-- mmcau_des_functions.s
|-- mmcau_md5_functions.s
|-- mmcau_sha1_functions.s
`-- mmcau_sha256_functions.s
Each mmcau optimized assembly library (cm0p, cm4) is contained in 5
files (18 functions) and is archived in a lib_mmcau*.a file.
Each library was assembled with:
GNU assembler version 4.3.3 (arm-none-linux-gnueabi-as)
This mmcau library update is checked-in under Design Sync:
sync://sync-15010:15010/Projects/mcp_armp/mmcau_apb3/tool_data/lib/
tagged as: mmcau_apb3.01.00.00.11
asm-cm0p : mmcau assembly library optimized for the ARMv6-M ISA
********
Includes the following file versions (with checkin timestamps):
12/19/2013 10:01 1.1 cau_api.h
11/13/2013 11:30 1.1 lib_mmcau-cm0p.a
(checked in as lib_mmcau-v6m.a)
08/22/2010 22:52 1.1 cau2_defines.hdr
10/31/2013 12:21 1.1 mmcau_aes_functions.s
10/31/2013 12:21 1.1 mmcau_des_functions.s
10/31/2013 12:21 1.1 mmcau_md5_functions.s
10/31/2013 12:21 1.1 mmcau_sha1_functions.s
11/20/2013 09:27 1.2 mmcau_sha256_functions.s
The following additional asm listing files not under revision control are
also included (with last modified timestamps):
11/19/2013 11:36 mmcau_aes_functions.lst
11/19/2013 11:36 mmcau_des_functions.lst
11/19/2013 11:36 mmcau_md5_functions.lst
11/19/2013 11:36 mmcau_sha1_functions.lst
11/19/2013 11:36 mmcau_sha256_functions.lst
asm-cm4 : mmcau assembly library optimized for the ARMv7-M ISA
*******
Includes the following file versions (with checkin timestamps):
12/19/2013 10:01 1.1 cau_api.h
11/21/2013 13:41 1.6 lib_mmcau.a
08/22/2010 22:52 1.1 cau2_defines.hdr
11/21/2013 13:17 1.4 mmcau_aes_functions.s
11/21/2013 13:17 1.4 mmcau_des_functions.s
11/21/2013 13:17 1.6 mmcau_md5_functions.s
11/21/2013 13:17 1.5 mmcau_sha1_functions.s
11/21/2013 13:18 1.6 mmcau_sha256_functions.s
The following additional asm listing files not under revision control are
also included (with last modified timestamps):
11/21/2013 13:23 mmcau_aes_functions.lst
11/21/2013 13:23 mmcau_des_functions.lst
11/21/2013 13:23 mmcau_md5_functions.lst
11/21/2013 13:23 mmcau_sha1_functions.lst
11/21/2013 13:23 mmcau_sha256_functions.lst
The calling conventions for the mmcau functions are as follows:
---------------------------------------------------------------
mmcau_aes_functions:
void mmcau_aes_set_key (const unsigned char *key,
const int key_size,
unsigned char *key_sch)
void mmcau_aes_encrypt (const unsigned char *in,
const unsigned char *key_sch,
const int nr,
unsigned char *out)
void mmcau_aes_decrypt (const unsigned char *in,
const unsigned char *key_sch,
const int nr,
unsigned char *out)
mmcau_des_functions:
int mmcau_des_chk_parity (const unsigned char *key)
void mmcau_des_encrypt (const unsigned char *in,
const unsigned char *key,
unsigned char *out)
void mmcau_des_decrypt (const unsigned char *in,
const unsigned char *key,
unsigned char *out)
mmcau_md5_functions:
void mmcau_md5_initialize_output (const unsigned char *md5_state)
void mmcau_md5_hash_n (const unsigned char *msg_data,
const int num_blks,
unsigned char *md5_state)
void mmcau_md5_update (const unsigned char *msg_data,
const int num_blks,
unsigned char *md5_state)
void mcau_md5_hash (const unsigned char *msg_data,
unsigned char *md5_state)
mmcau_sha1_functions:
void mmcau_sha1_initialize_output (const unsigned int *sha1_state)
void mmcau_sha1_hash_n (const unsigned char *msg_data,
const int num_blks,
unsigned int *sha1_state)
void mmcau_sha1_update (const unsigned char *msg_data,
const int num_blks,
unsigned int *sha1_state)
void mmcau_sha1_hash (const unsigned char *msg_data,
unsigned int *sha1_state)
mmcau_sha256_functions:
int mmcau_sha256_initialize_output (const unsigned int *output)
void mmcau_sha256_hash_n (const unsigned char *input,
const int num_blks,
unsigned int *output)
void mmcau_sha256_update (const unsigned char *input,
const int num_blks,
unsigned int *output)
void mmcau_sha256_hash (const unsigned char *input,
unsigned int *output)