The Console Security Certificate is used by the Xbox 360 as the format of all RSA signatures generated by it. The total length of the certificate is 552 (0x228) bytes.
| Offset | Length | Type | Information |
|---|---|---|---|
| 0x0 | 0x2 | bytes | Public Key Certificate Size |
| 0x2 | 0x5 | bytes | Console ID |
| 0x7 | 0xB | ascii string | Console Part Number |
| 0x12 | 0x4 | int | Reserved |
| 0x16 | 0x2 | short | Privileges |
| 0x18 | 0x4 | int | Console Type (0x02 for retail, anything different is devkit) |
| 0x1C | 0x8 | ascii string | Certificate Date of Generation |
| 0x24 | 0x4 | bytes | Public Exponent |
| 0x28 | 0x80 | bytes | Public Modulus |
| 0xA8 | 0x100 | bytes | Certificate Signature |
| 0x1A8 | 0x80 | bytes | Signature |
The console type field can be very strange, especially with older pre-1888 dashboards, for example two different 1838 keyvaults identify their console type as 0x80000002. If you want to check if something is devkit or retail, I’d suggest something like:
if(consoletype == 0x02)
return retail;
else
return devkit;