Certificates: Difference between revisions

3dsguy (talk | contribs)
mNo edit summary
3dsguy (talk | contribs)
mNo edit summary
Line 1: Line 1:
== Overview ==
== Overview ==
Certificates contain cryptography information for verifying Signatures. These certificates are also signed. The parent/child relationship between certificates, makes all the certificates effectively signed by 'Root', the public key for which is stored in NATIVE_FIRM.
Certificates contain cryptography information for verifying Signatures. These certificates are also signed. The parent/child relationship between certificates, makes all the certificates effectively signed by 'Root', the public key for which is stored in NATIVE_FIRM.
The signature method used to sign the certificate can be determined by checking the Signature Type:
{{Signature Types}}
The hash for the signature is calculated over the actual certificate data(from the start of the "Issuer", to the end of the "Public Key", aligned to 0x40 bytes).


== Format ==
== Format ==
Line 21: Line 16:
| 0x4
| 0x4
| X
| X
| Signature
| Signature with Padding (aligning next data to 0x40 bytes)
|-
|-
| 0x4 + X
| 0x4 + X
| 0x3C
| Signature Padding(aligning signature with padding to 0x40 bytes)
|-
| 0x40 + X
| 0x40
| 0x40
| Issuer
| Issuer
|-
|-
| 0x80 + X
| 0x44 + X
| 0x4
| 0x4
| Key Type
| Key Type
Line 44: Line 35:
|-
|-
| 0xC8 + X
| 0xC8 + X
|  
| *
| Public Key
| Public Key
|}
|}
== Signature ==
The signature method used to sign the certificate can be determined by checking the Signature Type:
{{Signature Types}}
The hash for the signature is calculated over the actual certificate data(from the start of the "Issuer", to the end of the "Public Key", aligned to 0x40 bytes).


== Public Key ==
== Public Key ==