Line 140:
Line 140:
| [[1.0.0-0|1.0.0-X]] - [[6.3.0-12|6.3.0-X]]
| [[1.0.0-0|1.0.0-X]] - [[6.3.0-12|6.3.0-X]]
| v0
| v0
−
| This had a minor refactor in [[6.0.0-11|6.0.0-X]] but is functionally identical.
+
| Mostly inherited from the Wii/DSi algorithm which used CRC-32 (0xEDB88320) with custom XOR-out (0xAAAA). 0x14C1 was added to produce the final result.
+
+
For the 3DS algorithm, only constants were changed: the polynomial was changed to 0xEDBA6320 and the addition constant became 0x1657.
+
+
The input to either function is an ASCII string of the format "%02u%02u%04u" where the parameters are month, day, and low 4 digits of the inquiry number. The low 5 decimal digits from the output u32 are then used for the master key.
+
+
Because of the date being used in the algorithm, this results in the master key only being valid on a particular day, though this is trivially defeated by setting the system time to the correct date that the key was generated on.
+
+
This had a minor refactor in [[6.0.0-11|6.0.0-X]] but is functionally identical.
|-
|-
| [[7.0.0-13|7.0.0-X]] - [[7.1.0-16|7.1.0-X]]
| [[7.0.0-13|7.0.0-X]] - [[7.1.0-16|7.1.0-X]]