<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roobscoob</id>
	<title>Nintendo Switch Brew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roobscoob"/>
	<link rel="alternate" type="text/html" href="https://switchbrew.org/wiki/Special:Contributions/Roobscoob"/>
	<updated>2026-04-30T10:50:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Ticket&amp;diff=12365</id>
		<title>Ticket</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Ticket&amp;diff=12365"/>
		<updated>2023-05-31T01:14:37Z</updated>

		<summary type="html">&lt;p&gt;Roobscoob: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tickets are a format used to store an encrypted title key. The format has been updated again since 3DS.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x000 || Y || Signature data&lt;br /&gt;
|-&lt;br /&gt;
| Y || 0x2C0 || Ticket data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Y denotes the total size of the &amp;quot;signature data&amp;quot; section and depends on the signature type.&lt;br /&gt;
&lt;br /&gt;
=== Signature data ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x4 || Signature type&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 || X || Signature&lt;br /&gt;
|-&lt;br /&gt;
| 0x4 + X || || Padding to align the signature data to 0x40 bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Signature type ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value&lt;br /&gt;
! Signature method&lt;br /&gt;
! Signature size&lt;br /&gt;
! Padding size&lt;br /&gt;
|-&lt;br /&gt;
| 0x010000&lt;br /&gt;
| RSA_4096 SHA1&lt;br /&gt;
| 0x200&lt;br /&gt;
| 0x3C&lt;br /&gt;
|-&lt;br /&gt;
| 0x010001&lt;br /&gt;
| RSA_2048 SHA1&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x3C&lt;br /&gt;
|-&lt;br /&gt;
| 0x010002&lt;br /&gt;
| ECDSA SHA1&lt;br /&gt;
| 0x3C&lt;br /&gt;
| 0x40&lt;br /&gt;
|-&lt;br /&gt;
| 0x010003&lt;br /&gt;
| RSA_4096 SHA256&lt;br /&gt;
| 0x200&lt;br /&gt;
| 0x3C&lt;br /&gt;
|-&lt;br /&gt;
| 0x010004&lt;br /&gt;
| RSA_2048 SHA256&lt;br /&gt;
| 0x100&lt;br /&gt;
| 0x3C&lt;br /&gt;
|-&lt;br /&gt;
| 0x010005&lt;br /&gt;
| ECDSA SHA256&lt;br /&gt;
| 0x3C&lt;br /&gt;
| 0x40&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The hash for the signature is calculated over the ticket data.&lt;br /&gt;
&lt;br /&gt;
=== Ticket data ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Offset&lt;br /&gt;
! Size&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0x0 || 0x40 || Issuer&lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || 0x100 || Title key block&lt;br /&gt;
|-&lt;br /&gt;
| 0x140 || 0x1 || Ticket Version (Always 2 for Switch (ES) Tickets)&lt;br /&gt;
|-&lt;br /&gt;
| 0x141 || 0x1 || Title key type&lt;br /&gt;
|-&lt;br /&gt;
| 0x142 || 0x2 || Ticket Version&lt;br /&gt;
|-&lt;br /&gt;
| 0x144 || 0x1 || License Type&lt;br /&gt;
|-&lt;br /&gt;
| 0x145 || 0x1 || Master key revision&lt;br /&gt;
|-&lt;br /&gt;
| 0x146 || 0x2 || Properties Bitfield&lt;br /&gt;
|-&lt;br /&gt;
| 0x148 || 0x8 || Reserved&lt;br /&gt;
|-&lt;br /&gt;
| 0x150 || 0x8 || Ticket ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x158 || 0x8 || Device ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x160 || 0x10 || Rights ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x170 || 0x4 || Account ID&lt;br /&gt;
|-&lt;br /&gt;
| 0x174 || 0xC || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x180 || 0x140 || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The title key can be stored as a 16-byte block when tickets are &amp;quot;common&amp;quot; [2.0.0+] with title key type 0, or as a &amp;quot;personalized&amp;quot; RSA-2048 message when title key type is 1. The latter is used for titles requiring stronger licensing (applications, add-on content), while the former (old) method is used for patches.&lt;br /&gt;
&lt;br /&gt;
When RSA is used, this uses an SPL key handle that is initialized with the console-unique RSA-2048 ticket key.&lt;br /&gt;
&lt;br /&gt;
== Certificate chain ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Certificate&lt;br /&gt;
!  Signature type&lt;br /&gt;
!  Retail cert name&lt;br /&gt;
!  Debug cert name&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  Ticket&lt;br /&gt;
|  RSA-2048&lt;br /&gt;
|  XS00000021&lt;br /&gt;
|  ?&lt;br /&gt;
|  Used to verify ticket signatures using RSA title key block (&amp;quot;personalized&amp;quot; tickets)&lt;br /&gt;
|-&lt;br /&gt;
|  Ticket&lt;br /&gt;
|  RSA-2048&lt;br /&gt;
|  XS00000020&lt;br /&gt;
|  ?&lt;br /&gt;
|  Used to verify ticket signatures using AES title key block&lt;br /&gt;
|-&lt;br /&gt;
|  CA&lt;br /&gt;
|  RSA-4096&lt;br /&gt;
|  CA00000003&lt;br /&gt;
|  CA00000004&lt;br /&gt;
|  Used to verify the ticket certificate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The CA certificate is issued by &#039;Root&#039;, the public key for which is stored in ES.&lt;/div&gt;</summary>
		<author><name>Roobscoob</name></author>
	</entry>
</feed>