Security Engine

From Nintendo Switch Brew
Revision as of 17:10, 19 February 2018 by Hexkyz (talk | contribs)
Jump to navigation Jump to search

The security engine (SE) is responsible for the crypto done on the switch. SE is mapped to physical address 0x70012000.

SE registers

Register Offset
OPERATION_REG_OFFSET 0x008
INT_ENABLE_REG_OFFSET 0x00C
INT_STATUS_REG_OFFSET 0x010
CONFIG_REG_OFFSET 0x014
IN_LL_ADDR_REG_OFFSET 0x018
OUT_LL_ADDR_REG_OFFSET 0x024
HASH_RESULT_REG_OFFSET 0x030
CONTEXT_SAVE_CONFIG_REG_OFFSET 0x070
SHA_CONFIG_REG 0x200
SHA_MSG_LENGTH_REG 0x204
SHA_MSG_LEFT_REG 0x214
KEYSLOT_1 0x284
KEYSLOT_2 0x288
KEYSLOT_3 0x28C
KEYSLOT_4 0x290
KEYSLOT_5 0x294
KEYSLOT_6 0x298
KEYSLOT_7 0x29C
KEYSLOT_8 0x2A0
KEYSLOT_9 0x2A4
KEYSLOT_10 0x2A8
KEYSLOT_11 0x2AC
KEYSLOT_12 0x2B0
KEYSLOT_13 0x2B4
KEYSLOT_14 0x2B8
KEYSLOT_15 0x2BC
KEYSLOT_16 0x2C0
CRYPTO_REG 0x304
CRYPTO_CTR_REG 0x308
BLOCK_COUNT_REG 0x318
KEYTABLE_REG 0x31C
KEYTABLE_DATA0_REG 0x320
CRYPTO_KEYTABLE_DST_REG 0x330
RNG_CONFIG_REG 0x340
RNG_SRC_CONFIG_REG 0x344
RNG_RESEED_INTERVAL_REG 0x348
RSA_CONFIG 0x400
RSA_KEY_SIZE_REG_OFFSET 0x404
RSA_EXP_SIZE_REG_OFFSET 0x408
RSA_KEYSLOT_1 0x410
RSA_KEYSLOT_2 0x414
RSA_KEYTABLE_ADDR 0x420
RSA_KEYTABLE_DATA 0x424
RSA_OUTPUT 0x428
SPARE_0_REG_OFFSET 0x80C