mirror of
https://github.com/DarkStore-3DS/Project_CTR.git
synced 2026-07-02 16:59:03 +00:00
80 lines
1.7 KiB
C
80 lines
1.7 KiB
C
#ifndef _TIK_H_
|
|
#define _TIK_H_
|
|
|
|
static const unsigned char normal_static_ticket_data[0x30] =
|
|
{
|
|
0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0xAC,
|
|
0x00, 0x00, 0x00, 0x14, 0x00, 0x01, 0x00, 0x14,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28,
|
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84,
|
|
0x00, 0x00, 0x00, 0x84, 0x00, 0x03, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
};
|
|
|
|
/*
|
|
static const unsigned char system_static_ticket_data[0x30] =
|
|
{
|
|
0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0xAC,
|
|
0x00, 0x00, 0x00, 0x14, 0x00, 0x01, 0x00, 0x14,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28,
|
|
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84,
|
|
0x00, 0x00, 0x00, 0x84, 0x00, 0x03, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
};
|
|
*/
|
|
typedef enum
|
|
{
|
|
lic_Permanent = 0,
|
|
lic_Demo = 1,
|
|
lic_Trial = 2,
|
|
lic_Rental = 3,
|
|
lic_Subscription = 4,
|
|
lic_Service = 5,
|
|
lic_Mask = 15
|
|
} ticket_license_type;
|
|
|
|
typedef enum
|
|
{
|
|
right_Permanent = 1,
|
|
right_Subscription = 2,
|
|
right_Content = 3,
|
|
right_ContentConsumption = 4,
|
|
right_AccessTitle = 5
|
|
} ticket_item_rights;
|
|
|
|
typedef struct
|
|
{
|
|
u8 sig_type[4];
|
|
u8 data[0x100];
|
|
u8 padding[0x3C];
|
|
} TicketSignatureStruct;
|
|
|
|
typedef struct
|
|
{
|
|
u8 Issuer[0x40];
|
|
u8 ECDH[0x3c];
|
|
u8 TicketFormatVersion;
|
|
u8 ca_crl_version;
|
|
u8 signer_crl_version;
|
|
u8 EncryptedTitleKey[0x10];
|
|
u8 unknown_0;
|
|
u8 TicketID[8];
|
|
u8 DeviceID[4];
|
|
u8 TitleID[8];
|
|
u8 unknown_1[2];
|
|
u8 TicketVersion[2];
|
|
u8 unused_0[8];
|
|
u8 unused_1;
|
|
u8 CommonKeyID;
|
|
u8 unused_2[0x2F];
|
|
u8 unknown_2;
|
|
u8 unused_3[0x82];
|
|
u8 StaticData[0x30];
|
|
u8 unused_4[0x7C];
|
|
} TicketStruct;
|
|
|
|
#endif
|
|
|
|
// Prototypes
|
|
int BuildTicket(cia_settings *ciaset);
|
|
int CryptTitleKey(u8 *EncTitleKey, u8 *DecTitleKey, u8 *TitleID, keys_struct *keys, u8 mode); |