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