983
SAM4CP [DATASHEET]
43051E–ATPL–08/14
Considering the following
1024 bits message
(example given in FIPS 180-2):
"6162638000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000018"
The message is written to memory in a Little Endian (LE) system architecture.
42.5.3 ICM SHA Engine
The module can process SHA1, SHA224, SHA256 by means of a configuration field in the SHA_MR.
42.5.3.1 Processing Period
The SHA engine processing period can be configured.
The short processing period allows to allocate bandwidth to the SHA module whereas the long processing period
allocates more bandwidth on the system bus to other applications.
In SHA mode, the shortest processing period is 85 clock cycles + 2 clock cycles for start command synchronization. The
longest period is 209 clock cycles + 2 clock cycles.
In SHA256 and SHA224 modes, the shortest processing period is 72 clock cycles + 2 clock cycles for start command
synchronization. The longest period is 194 clock cycles + 2 clock cycles.
42.5.4 Security Features
When an undefined register access occurs, the URAD bit in the Interrupt Status Register (ICM_ISR) is set if unmasked.
Its source is then reported in the Undefined Access Status Register (ICM_UASR). Only the first undefined register
access is available through the URAT field.
Several kinds of unspecified register accesses can occur:
Unspecified structure member set to one detected when the descriptor is loaded.
Configuration register (ICM_CFG) modified during active monitoring.
Descriptor register (ICM_DSCR) modified during active monitoring.
Table 42-6.
Resulting SHA-256 Message Digest Memory Mapping
Memory
Address
Address Offset / Byte Lane
0x3 / 31:24
0x2 / 23:16
0x1 / 15:8
0x0 / 7:0
0x000
bf
16
78
ba
0x004
ea
cf
01
8f
0x008
de
40
41
41
0x00C
23
22
ae
5d
0x010
a3
61
03
b0
0x014
9c
7a
17
96
0x018
61
ff
10
b4
0x01C
ad
15
00
f2
Table 42-7.
1024 bits Message Memory Mapping
Memory
Address
Address Offset / Byte Lane
0x3 / 31:24
0x2 / 23:16
0x1 / 15:8
0x0 / 7:0
0x000
80
63
62
61
0x004 - 0x078
00
00
00
00
0x07C
18
00
00
00