Title metadata
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
typedef struct { u32 cid; // content id u8 hash[0x20]; // SHA-256 hash } content_record; // size: 0x24 bytes enum sig_type { RSA_2048_SHA256 = 0x00010004, RSA_4096_SHA256 = 0x00010003, RSA_2048_SHA1 = 0x00010001, RSA_4096_SHA1 = 0x00010000 }; typedef struct { u32 sig_type; u8 sig[*]; // * Signature size u8 fill1[60]; u8 issuer[64]; // Root-CA%08x-CP%08x u8 version; u8 ca_crl_version; u8 signer_crl_version; u8 fill2; u64 sys_version; u64 title_id; u32 title_type; u16 group_id; // publisher u8 reserved[62]; u32 access_rights; u16 title_version; u16 num_contents; content_record contents[0x40]; u8 padding[0x28]; u32 boot_content; u32 banner_content; u32 banner_size; u8 hash[0x20]; /* Huh? */ } tmd;
//The tmd is then followed by a chain of certificates, where each certificate is of the general form typedef struct { u32 sig_type; u8 sig[*]; // * Signature size u8 issuer[64]; u32 tag; // identifies what is being signed u8 name[64]; // name of thing being signed u8 key[...]; } certificate;