Registres RSA
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é) |