Registres RSA

Revision as of 17:32, 5 September 2016 by Thog (talk | contribs) (Created page with "= Registres = {| class="wikitable" border="1" ! Old3DS ! Nom ! Addresse physique ! Taille ! Utilisé par |- | style="background: green" | Oui | RSA_CNT | 0x1...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

RegistresEdit

Old3DS Nom Addresse physique Taille Utilisé par
Oui RSA_CNT 0x1000B000 0x04
Oui RSA_? 0x1000B0F0 0x04
Oui RSA_SLOT0 0x1000B100 0x10
Oui RSA_SLOT1 0x1000B110 0x10
Oui RSA_SLOT2 0x1000B120 0x10
Oui RSA_SLOT3 0x1000B130 0x10
Oui RSA_EXPFIFO 0x1000B200 0x04
Oui RSA_MOD 0x1000B400 0x100
Oui RSA_TXT 0x1000B800 0x100

RSA_CNTEdit

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_SLOTEdit

Nom DĂ©calage Taille
RSA_SLOTCNT 0x0 0x4
RSA_SLOTSIZE 0x4 0x4
? 0x8 0x4
? 0xC 0x4

RSA_SLOTCNTEdit

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_SLOTSIZEEdit

Ceci contient la taille du RSA pour cet emplacement défini en mots. Normalement, la valeur est 0x40 pour un chiffrement RSA-2048.

RSA_EXPFIFOEdit

L'exposent de l'octet situé en 0x100 (privé ou publique) est écrit dans cet emplacement en écriture seul- PEPS.

RSA_MODEdit

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_TXTEdit

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 clefEdit

Emplacement de clef Description
0 Arbitraire
1 Description d'accĂšs au CXI (suivant l'exheader)
2-3 Initialisé par la bootrom du processeur ARM9 mais non utilisé par aucun des FIRMs. L'utilisation de ces emplacements par la bootrom ARM9 est inconnu. (si ils ont une quelconque utilité)