3,223 bytes added
, 17:32, 5 September 2016
= Registres =
{| class="wikitable" border="1"
! Old3DS
! Nom
! Addresse physique
! Taille
! Utilisé par
|-
| style="background: green" | Oui
| [[#RSA_CNT|RSA_CNT]]
| 0x1000B000
| 0x04
|
|-
| style="background: green" | Oui
| RSA_?
| 0x1000B0F0
| 0x04
|
|-
| style="background: green" | Oui
| [[#RSA_SLOT|RSA_SLOT]]0
| 0x1000B100
| 0x10
|
|-
| style="background: green" | Oui
| [[#RSA_SLOT|RSA_SLOT]]1
| 0x1000B110
| 0x10
|
|-
| style="background: green" | Oui
| [[#RSA_SLOT|RSA_SLOT]]2
| 0x1000B120
| 0x10
|
|-
| style="background: green" | Oui
| [[#RSA_SLOT|RSA_SLOT]]3
| 0x1000B130
| 0x10
|
|-
| style="background: green" | Oui
| [[#RSA_EXPFIFO|RSA_EXPFIFO]]
| 0x1000B200
| 0x04
|
|-
| style="background: green" | Oui
| [[#RSA_MOD|RSA_MOD]]
| 0x1000B400
| 0x100
|
|-
| style="background: green" | Oui
| [[#RSA_TXT|RSA_TXT]]
| 0x1000B800
| 0x100
|
|}
== RSA_CNT ==
{| class="wikitable" border="1"
! Bit
! Description
|-
| 0
| Début (1=Actif/Occupé, 0=Inactif)
|-
| 1
| ?
|-
| 4-7
| Emplacement de la clef (Bit6-7 don't actually affect the keyslot)
|-
| 8
| Endianness (1=Little endian, 0=Big endian)
|-
| 9
| Ordre des mots (1=Ordre normal, 0=Ordre renversé)
|}
== RSA_SLOT ==
{| class="wikitable" border="1"
! Nom
! DĂ©calage
! Taille
|-
| [[#RSA_SLOTCNT|RSA_SLOTCNT]]
| 0x0
| 0x4
|-
| [[#RSA_SLOTSIZE|RSA_SLOTSIZE]]
| 0x4
| 0x4
|-
| ?
| 0x8
| 0x4
|-
| ?
| 0xC
| 0x4
|}
== RSA_SLOTCNT ==
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0
| Statut de la clef (1=Clef définie, 0=Clef non définie pour le moment)
|-
| 1
| Protection en écriture de la clef, ce bit est RW. (0 = non protégé, 1 = protégé)
|-
| 30-2
| ?
|-
| 31
| ?
|}
Avant d'Ă©crire RSA_EXPFIFO/RSA_MOD, le bit 0 doit ici ĂȘtre mit Ă zĂ©ro si le bit 31 est dĂ©jĂ Ă zĂ©ro. Autrement, l'ARM9 se bloquera lorsque vous essayerez d'Ă©crire en RSA_EXPFIFO.
== RSA_SLOTSIZE ==
Ceci contient la taille du RSA pour cet emplacement défini en mots. Normalement, la valeur est 0x40 pour un chiffrement RSA-2048.
== RSA_EXPFIFO ==
L'exposent de l'octet situé en 0x100 (privé ou publique) est écrit dans cet emplacement en écriture seul- PEPS.
== RSA_MOD ==
Le modulo de la clef RSA pour l'emplacement sĂ©lectionnĂ© peut ĂȘtre Ă©crit ici. Au moment de l'Ă©criture, le modulo doit ĂȘtre alignĂ© avec la fin de la zone du registre.
== RSA_TXT ==
La signature RSA peut ĂȘtre Ă©crit ici. Les donnĂ©es lues provenant d'ici sont le message. Au moment de l'Ă©criture de la signature RSA, la signature doit ĂȘtre prĂ©fixĂ© par des zĂ©ros jusqu'Ă atteindre un multiple de 8 octets et la fin de la signature doit ĂȘtre alignĂ© avec la fin de la zone du registre.
Le prĂ©fixe du message PKCS doit ĂȘtre vĂ©rifiĂ© manuellement par le logiciel Ă©tant donnĂ© que l'hardware ne fait que des opĂ©rations RSA brutes.
== Utilisation des emplacements de clef ==
{| class="wikitable" border="1"
! Emplacement de clef
! Description
|-
| 0
| Arbitraire
|-
| 1
| Description d'accĂšs au [[NCCH/FR#CXI|CXI]] (suivant l'exheader)
|-
| 2-3
| Initialisé par la bootrom du processeur ARM9 mais non utilisé par aucun des [[FIRM/FR|FIRM]]s. L'utilisation de ces emplacements par la bootrom ARM9 est inconnu. (si ils ont une quelconque utilité)
|}