TMD: Unterschied zwischen den Versionen

Aus WiiDatabase Wiki
Zur Navigation springenZur Suche springen
285 Bytes hinzugefügt ,  16. April 2019
K
(Signatur)
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 89: Zeile 89:
{{Hauptartikel|Zertifikatskette}}
{{Hauptartikel|Zertifikatskette}}
Die Signatur beinhaltet den SHA1-Hash der TMD (vom Aussteller bis zum Ende der Inhalte), welcher mit dem Private-Key verschlüsselt ist. Um diesen zu entschlüsseln, muss der Public-Key aus dem CP-Zertifikat (welches üblicherweise das erste angehängte Zertifikat ist) [[w:RSA-Kryptosystem#Erzeugung_des_öffentlichen_und_privaten_Schlüssels|gebildet]] und die Signatur entschlüsselt werden (nur die Daten, ohne Signatur-Typ und Padding). Stimmt der gebildete SHA1-Hash der TMD mit dem entschlüsselten Hash aus der Signatur überein, ist die TMD valide und von Nintendo signiert.
Die Signatur beinhaltet den SHA1-Hash der TMD (vom Aussteller bis zum Ende der Inhalte), welcher mit dem Private-Key verschlüsselt ist. Um diesen zu entschlüsseln, muss der Public-Key aus dem CP-Zertifikat (welches üblicherweise das erste angehängte Zertifikat ist) [[w:RSA-Kryptosystem#Erzeugung_des_öffentlichen_und_privaten_Schlüssels|gebildet]] und die Signatur entschlüsselt werden (nur die Daten, ohne Signatur-Typ und Padding). Stimmt der gebildete SHA1-Hash der TMD mit dem entschlüsselten Hash aus der Signatur überein, ist die TMD valide und von Nintendo signiert.
Wenn der SHA1-Hash nicht übereinstimmt und der gebildete SHA1-Hash der TMD mit <code>00</code> beginnt, ist diese [[Fakesigning|fakesigned]].


Das CP-Zertifikat ist von dem CA-Zertifikat signiert, welches wiederum mit dem Wii Root-Zertifikat signiert ist.
Das CP-Zertifikat ist von dem CA-Zertifikat signiert, welches wiederum mit dem Wii Root-Zertifikat signiert ist.
Zeile 153: Zeile 155:


== Anwendungsbeispiel ==
== Anwendungsbeispiel ==
''Siehe auch: [https://github.com/WiiDatabase/PyNUSD/blob/master/WADGEN.py WADGEN]''
Dieses Code-Beispiel in Python 3 parst eine TMD.
Dieses Code-Beispiel in Python 3 parst eine TMD.
<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
Zeile 202: Zeile 206:
{{Top Icon Wii}}
{{Top Icon Wii}}
{{Top Icon DSi}}
{{Top Icon DSi}}
{{Top Icon Wii U}}
 
[[Kategorie:Nintendo DSi]]
[[Kategorie:Nintendo Wii]]
[[Kategorie:vWii]]

Navigationsmenü