README.txt
1This is an updated release of the Kinetis MMCAU security function library.
2
3
4This release:
5
6 - new asm-cm0p library created, optimized for ARMv6-M ISA
7 - minor improvements to asm-cm4 library, optimized for ARMv7-M ISA
8
9
10This release contains the following structure for the mmcau directory:
11
12README.txt (this file)
13
14asm-cm0p
15|-- cau_api.h
16|-- lib_mmcau-cm0p.a
17|-- lst
18| |-- mmcau_aes_functions.lst
19| |-- mmcau_des_functions.lst
20| |-- mmcau_md5_functions.lst
21| |-- mmcau_sha1_functions.lst
22| `-- mmcau_sha256_functions.lst
23`-- src
24 |-- cau2_defines.hdr
25 |-- mmcau_aes_functions.s
26 |-- mmcau_des_functions.s
27 |-- mmcau_md5_functions.s
28 |-- mmcau_sha1_functions.s
29 `-- mmcau_sha256_functions.s
30
31asm-cm4
32|-- cau_api.h
33|-- lib_mmcau.a
34|-- lst
35| |-- mmcau_aes_functions.lst
36| |-- mmcau_des_functions.lst
37| |-- mmcau_md5_functions.lst
38| |-- mmcau_sha1_functions.lst
39| `-- mmcau_sha256_functions.lst
40`-- src
41 |-- cau2_defines.hdr
42 |-- mmcau_aes_functions.s
43 |-- mmcau_des_functions.s
44 |-- mmcau_md5_functions.s
45 |-- mmcau_sha1_functions.s
46 `-- mmcau_sha256_functions.s
47
48
49
50Each mmcau optimized assembly library (cm0p, cm4) is contained in 5
51files (18 functions) and is archived in a lib_mmcau*.a file.
52
53
54Each library was assembled with:
55GNU assembler version 4.3.3 (arm-none-linux-gnueabi-as)
56
57
58This mmcau library update is checked-in under Design Sync:
59sync://sync-15010:15010/Projects/mcp_armp/mmcau_apb3/tool_data/lib/
60tagged as: mmcau_apb3.01.00.00.11
61
62
63
64asm-cm0p : mmcau assembly library optimized for the ARMv6-M ISA
65********
66
67Includes the following file versions (with checkin timestamps):
68
6912/19/2013 10:01 1.1 cau_api.h
7011/13/2013 11:30 1.1 lib_mmcau-cm0p.a
71 (checked in as lib_mmcau-v6m.a)
7208/22/2010 22:52 1.1 cau2_defines.hdr
7310/31/2013 12:21 1.1 mmcau_aes_functions.s
7410/31/2013 12:21 1.1 mmcau_des_functions.s
7510/31/2013 12:21 1.1 mmcau_md5_functions.s
7610/31/2013 12:21 1.1 mmcau_sha1_functions.s
7711/20/2013 09:27 1.2 mmcau_sha256_functions.s
78
79The following additional asm listing files not under revision control are
80also included (with last modified timestamps):
81
8211/19/2013 11:36 mmcau_aes_functions.lst
8311/19/2013 11:36 mmcau_des_functions.lst
8411/19/2013 11:36 mmcau_md5_functions.lst
8511/19/2013 11:36 mmcau_sha1_functions.lst
8611/19/2013 11:36 mmcau_sha256_functions.lst
87
88
89asm-cm4 : mmcau assembly library optimized for the ARMv7-M ISA
90*******
91
92Includes the following file versions (with checkin timestamps):
93
9412/19/2013 10:01 1.1 cau_api.h
9511/21/2013 13:41 1.6 lib_mmcau.a
9608/22/2010 22:52 1.1 cau2_defines.hdr
9711/21/2013 13:17 1.4 mmcau_aes_functions.s
9811/21/2013 13:17 1.4 mmcau_des_functions.s
9911/21/2013 13:17 1.6 mmcau_md5_functions.s
10011/21/2013 13:17 1.5 mmcau_sha1_functions.s
10111/21/2013 13:18 1.6 mmcau_sha256_functions.s
102
103The following additional asm listing files not under revision control are
104also included (with last modified timestamps):
105
10611/21/2013 13:23 mmcau_aes_functions.lst
10711/21/2013 13:23 mmcau_des_functions.lst
10811/21/2013 13:23 mmcau_md5_functions.lst
10911/21/2013 13:23 mmcau_sha1_functions.lst
11011/21/2013 13:23 mmcau_sha256_functions.lst
111
112
113
114The calling conventions for the mmcau functions are as follows:
115---------------------------------------------------------------
116
117mmcau_aes_functions:
118 void mmcau_aes_set_key (const unsigned char *key,
119 const int key_size,
120 unsigned char *key_sch)
121 void mmcau_aes_encrypt (const unsigned char *in,
122 const unsigned char *key_sch,
123 const int nr,
124 unsigned char *out)
125 void mmcau_aes_decrypt (const unsigned char *in,
126 const unsigned char *key_sch,
127 const int nr,
128 unsigned char *out)
129
130
131mmcau_des_functions:
132 int mmcau_des_chk_parity (const unsigned char *key)
133 void mmcau_des_encrypt (const unsigned char *in,
134 const unsigned char *key,
135 unsigned char *out)
136 void mmcau_des_decrypt (const unsigned char *in,
137 const unsigned char *key,
138 unsigned char *out)
139
140
141mmcau_md5_functions:
142 void mmcau_md5_initialize_output (const unsigned char *md5_state)
143 void mmcau_md5_hash_n (const unsigned char *msg_data,
144 const int num_blks,
145 unsigned char *md5_state)
146 void mmcau_md5_update (const unsigned char *msg_data,
147 const int num_blks,
148 unsigned char *md5_state)
149 void mcau_md5_hash (const unsigned char *msg_data,
150 unsigned char *md5_state)
151
152
153mmcau_sha1_functions:
154 void mmcau_sha1_initialize_output (const unsigned int *sha1_state)
155 void mmcau_sha1_hash_n (const unsigned char *msg_data,
156 const int num_blks,
157 unsigned int *sha1_state)
158 void mmcau_sha1_update (const unsigned char *msg_data,
159 const int num_blks,
160 unsigned int *sha1_state)
161 void mmcau_sha1_hash (const unsigned char *msg_data,
162 unsigned int *sha1_state)
163
164
165mmcau_sha256_functions:
166 int mmcau_sha256_initialize_output (const unsigned int *output)
167 void mmcau_sha256_hash_n (const unsigned char *input,
168 const int num_blks,
169 unsigned int *output)
170 void mmcau_sha256_update (const unsigned char *input,
171 const int num_blks,
172 unsigned int *output)
173 void mmcau_sha256_hash (const unsigned char *input,
174 unsigned int *output)
175