Line 232: |
Line 232: |
| | | |
| == Endianness and word order == | | == Endianness and word order == |
− | When writing to the AES_CTR, AES_MAC or AES_KEY0/1/2/3 register, the hardware will process the written data according to the current input endianness specified in AES_CNT. This means that the byte ordering within each word is endian swapped accordingly but the word ordering of the register remains little endian.
| + | |
| + | === AES_CNT.input_endianness === |
| + | |
| + | Swaps the bytes of 32-bit writes to AES_CTR, AES_WRFIFO, AES_KEY*FIFO according to specified endianness. AES_MAC? |
| + | |
| + | === AES_CNT.output_endianness === |
| + | |
| + | Swaps the bytes of 32-bit reads from AES_RDFIFO. |
| + | |
| + | === AES_CNT.input_word_order === |
| + | |
| + | If reversed, writes to AES_KEY*FIFO and AES_WRFIFO fill the FIFO backwards. For AES_WRFIFO, this means that every 16-byte block will have its words in the reverse order, but the order of these blocks remains the same. AES_CTR is unaffected by this field. AES_MAC? |
| + | |
| + | === AES_CNT.output_word_order === |
| + | |
| + | If reversed, reads from AES_RDFIFO will drain the FIFO backwards. This means that every 16-byte output block will have its words in the reverse order, but the order of these blocks remains the same. |
| | | |
| == CCM mode pitfall == | | == CCM mode pitfall == |
Line 560: |
Line 575: |
| | Movable.sed key. | | | Movable.sed key. |
| | | |
− | This is the keyslot used for movable.sed encryption + AES-CBC MAC with the import/export [[FSPXI:ImportIntegrityVerificationSeed|commands]]. | + | This is the keyslot used for movable.sed encryption + AES-CBC MAC with the import/export [[FSPXI:ImportIntegrityVerificationSeed|commands]]. The keyYs used for crypto/CMAC are different, but both can be found in process9 rodata. |
− | | Bootrom.
| |
| | Bootrom. | | | Bootrom. |
| + | | NATIVE_FIRM. |
| | - | | | - |
| | Yes | | | Yes |