\n

CRYPTO

Peripheral Memory Blocks

address_offset : 0x0 Bytes (0x0)
size : 0x2C byte (0x0)
mem_usage : registers
protection :

address_offset : 0xEF8 Bytes (0x0)
size : 0x8 byte (0x0)
mem_usage : registers
protection :

Registers

CRYPTO_PRNG_CTL

CRYPTO_PRNG_KEY2

CRYPTO_PRNG_KEY3

CRYPTO_PRNG_KEY4

CRYPTO_PRNG_KEY5

CRYPTO_PRNG_KEY6

CRYPTO_PRNG_KEY7

CRYPTO_PRNG_STS

CRYPTO_PRNG_SEED

CRYPTO_PRNG_KEY0

CRYPTO_PRNG_KEY1

CRYPTO_PRNG_KSCTL

CRYPTO_PRNG_KSSTS


CRYPTO_PRNG_CTL

PRNG Control Register
address_offset : 0x0 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_CTL CRYPTO_PRNG_CTL read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 START SEEDRLD KEYSZ SEEDSEL SEEDSRC BUSY

START : Start PRNG Engine
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

#0 : 0

Stop PRNG engine

#1 : 1

Generate new key and store the new key to register CRYPTO_PRNG_KEYx, which will be cleared when the new key is generated

End of enumeration elements list.

SEEDRLD : Reload New Seed for PRNG Engine
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

#0 : 0

Generating key based on the current seed

#1 : 1

Reload new seed

End of enumeration elements list.

KEYSZ : PRNG Generate Key Size Note: 283~571 bits are only generated for Key Store.
bits : 2 - 5 (4 bit)
access : read-write

Enumeration:

#0000 : 0

128 bits

#0001 : 1

163 bits

#0010 : 2

192 bits

#0011 : 3

224 bits

#0100 : 4

233 bits

#0101 : 5

255 bits

#0110 : 6

256 bits

#0111 : 7

283 bits (only for KS)

#1000 : 8

384 bits (only for KS)

#1001 : 9

409 bits (only for KS)

#1010 : 10

512 bits (only for KS)

#1011 : 11

521 bits (only for KS)

#1100 : 12

571 bits (only for KS)

#1101 : 13

Reserved.

#1110 : 14

Reserved.

#1111 : 15

Reserved.

End of enumeration elements list.

SEEDSEL : Seed Select This bit can be set to 1 only after SEEDRDY (TRNG_CTL[9]) bit become to 1.
bits : 6 - 6 (1 bit)
access : read-write

Enumeration:

#0 : 0

Select the seed which is from PRNG

#1 : 1

Select the seed which is from TRNG (not from CRYPTO_PRNG_SEED)

End of enumeration elements list.

SEEDSRC : Seed Source (Read Only) Note: This bit is cleared to '0' when SEEDSEL is 0.
bits : 7 - 7 (1 bit)
access : read-only

Enumeration:

#0 : 0

Seed is from PRNG

#1 : 1

Seed is from TRNG. (not from CRYPTO_PRNG_SEED)

End of enumeration elements list.

BUSY : PRNG Busy (Read Only)
bits : 8 - 8 (1 bit)
access : read-only

Enumeration:

#0 : 0

PRNG engine is idle

#1 : 1

Indicate that the PRNG engine is generating CRYPTO_PRNG_KEYx

End of enumeration elements list.


CRYPTO_PRNG_KEY2

PRNG Generated Key2
address_offset : 0x10 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY2 CRYPTO_PRNG_KEY2 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

CRYPTO_PRNG_KEY3

PRNG Generated Key3
address_offset : 0x14 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY3 CRYPTO_PRNG_KEY3 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

CRYPTO_PRNG_KEY4

PRNG Generated Key4
address_offset : 0x18 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY4 CRYPTO_PRNG_KEY4 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

CRYPTO_PRNG_KEY5

PRNG Generated Key5
address_offset : 0x1C Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY5 CRYPTO_PRNG_KEY5 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

CRYPTO_PRNG_KEY6

PRNG Generated Key6
address_offset : 0x20 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY6 CRYPTO_PRNG_KEY6 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

CRYPTO_PRNG_KEY7

PRNG Generated Key7
address_offset : 0x24 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY7 CRYPTO_PRNG_KEY7 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

CRYPTO_PRNG_STS

PRNG Status Register
address_offset : 0x28 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_STS CRYPTO_PRNG_STS read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BUSY KCTLERR KSERR

BUSY : PRNG Busy Flag
bits : 0 - 0 (1 bit)
access : read-only

Enumeration:

#0 : 0

PRNG engine is idle

#1 : 1

Indicate that the PRNG engine is generating CRYPTO_PRNG_KEYx

End of enumeration elements list.

KCTLERR : PRNG Key Control Register Error Flag
bits : 16 - 16 (1 bit)
access : read-only

Enumeration:

#0 : 0

No error

#1 : 1

PRNG key control error. When PRNG execute ECDSA or ECDH, but PRNG seed not from TRNG or key is not written to the SRAM of key store (WSDST, CRYPTO_PRNG_KSCTL[23:22] is not equal to '00')

End of enumeration elements list.

KSERR : PRNG Access Key Store Error Flag
bits : 17 - 17 (1 bit)
access : read-only

Enumeration:

#0 : 0

No error

#1 : 1

Access key store fail

End of enumeration elements list.


CRYPTO_PRNG_SEED

Seed for PRNG
address_offset : 0x4 Bytes (0x0)
size : -1 bit
access : write-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_SEED CRYPTO_PRNG_SEED write-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEED

SEED : Seed for PRNG (Write Only) The bits store the seed for PRNG engine. Note: In TRNG+PRNG mode, the seed is from TRNG engine, and it will not be stored in this register.
bits : 0 - 31 (32 bit)
access : write-only


CRYPTO_PRNG_KEY0

PRNG Generated Key0
address_offset : 0x8 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY0 CRYPTO_PRNG_KEY0 read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 KEY

KEY : Store PRNG Generated Key (Read Only) The bits store the key that is generated by PRNG.
bits : 0 - 31 (32 bit)
access : read-only


CRYPTO_PRNG_KEY1

PRNG Generated Key1
address_offset : 0xC Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KEY1 CRYPTO_PRNG_KEY1 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

CRYPTO_PRNG_KSCTL

PRNG Key Control Register
address_offset : 0xEF8 Bytes (0x0)
size : -1 bit
access : write-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KSCTL CRYPTO_PRNG_KSCTL write-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NUM TRUST PRIV ECDH ECDSA WDST WSDST OWNER

NUM : Write Key Number The key number is sent to key store Note: Only for destination is OTP of Key Store.
bits : 0 - 4 (5 bit)
access : write-only

TRUST : Write Key Trust Selection Bit
bits : 16 - 16 (1 bit)
access : write-only

Enumeration:

#0 : 0

Set written key as the non-secure key

#1 : 1

Set written key as the secure key

End of enumeration elements list.

PRIV : Privilege Key Selection Bit
bits : 18 - 18 (1 bit)
access : write-only

Enumeration:

#0 : 0

Set key as the non-privilege key

#1 : 1

Set key as the privilege key

End of enumeration elements list.

ECDH : ECDH Control Bit Note: When ECDH is set to '1', 1. PRNG seed must come from TRNG and key must be written to the SRAM of key store (WSDST, CRYPTO_PRNG_KSCTL[23:22] must set to '00'). Otherwise, KCTLERR will become '1'(CRYPTO_PRNG_KSSTS[16]).2. Key must be in the interval [1, n-1] (the parameter n is from ECC). The value of n cannot be 0 or 1 otherwise, PRNG will always keep busy.
bits : 19 - 19 (1 bit)
access : write-only

Enumeration:

#0 : 0

Reserved.

#1 : 1

Key is written to key store and used in ECDH

End of enumeration elements list.

ECDSA : ECDSA Control Bit Note: When ECDSA is set to '1', 1. PRNG seed must come from TRNG and key must be written to the SRAM of key store (WSDST, CRYPTO_PRNG_KSCTL[23:22] must set to '00'). Otherwise, KCTLERR will become '1'(CRYPTO_PRNG_KSSTS[16]). 2. Key must be in the interval [1, n-1] (the parameter n is from ECC). The value of n cannot be 0 or 1 otherwise, PRNG will always keep busy.
bits : 20 - 20 (1 bit)
access : write-only

Enumeration:

#0 : 0

Reserved.

#1 : 1

Key is written to key store and used in ECDSA

End of enumeration elements list.

WDST : Write Key Destination
bits : 21 - 21 (1 bit)
access : write-only

Enumeration:

#0 : 0

Key is written to registers CRYPTO_PRNG_KEYx

#1 : 1

Key is written to key store

End of enumeration elements list.

WSDST : Write Key Store Destination
bits : 22 - 23 (2 bit)
access : write-only

Enumeration:

#00 : 0

Key is written to the SRAM of key store

#10 : 2

Key is written to the OTP of key store

End of enumeration elements list.

OWNER : Write Key Owner Selection Bits
bits : 24 - 26 (3 bit)
access : write-only

Enumeration:

#000 : 0

Only for AES use

#001 : 1

Only for HMAC engine use

#100 : 4

Only for ECC engine use

#101 : 5

Only for CPU engine use

End of enumeration elements list.


CRYPTO_PRNG_KSSTS

PRNG Key Status Register
address_offset : 0xEFC Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

CRYPTO_PRNG_KSSTS CRYPTO_PRNG_KSSTS read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NUM

NUM : Key Number The key number is generated by key store
bits : 0 - 4 (5 bit)
access : read-only



Is something missing? Is something wrong? can you help correct it ? Please contact us at info@chipselect.org !

This website is sponsored by EmbeetleEmbeetle, an IDE designed from scratch for embedded software developers.