Rights Information Files: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
(Move RIF type information to a table.)
(Add RIF types found in 4.05.)
Line 65: Line 65:
! style="width: 10%" | <abbr title="Firmware Type">FW Type</abbr>
! style="width: 10%" | <abbr title="Firmware Type">FW Type</abbr>
! style="width: 10%" | <abbr title="Minimum Version">Min Ver</abbr>
! style="width: 10%" | <abbr title="Minimum Version">Min Ver</abbr>
! style="width: 10%" | <abbr title="Maximum Version">Max Ver</abbr>
! style="width: 20%" | Name
! style="width: 20%" | Name
! style="width: 45%" | Remark
! style="width: 35%" | Remark
|-
|-
| <code>0x000</code>
| <code>0x000</code>
| ?
| All
| 1
| 1
| 1
| KDS RIF
|
|-
| <code>0x001</code>
| All
| 2
| 2
| KDS RIF
|
|-
| <code>0x002</code>
| All
| 3
| 3
| KDS RIF
| KDS RIF
|  
|  
|-
|-
| <code>0x101</code>
| <code>0x101</code>
| rowspan="2" | ?
| rowspan="2" | All
| rowspan="2" | 1
| rowspan="2" | 1
| rowspan="2" | 1
| rowspan="2" | Isolated RIF
| rowspan="2" | Isolated RIF
Line 83: Line 100:
|-
|-
| <code>0x102</code>
| <code>0x102</code>
| ?
| All
| 1
| 1
| 1
| Disc RIF
| Disc RIF
Line 89: Line 107:
|-
|-
| <code>0x200</code>
| <code>0x200</code>
| rowspan="3" | ?
| rowspan="3" | DEX/TEST
| rowspan="3" | 1
| rowspan="3" | 1
| rowspan="3" | 1
| rowspan="3" | Fake/Debug RIF
| rowspan="3" | Fake/Debug RIF
Line 97: Line 116:
|-
|-
| <code>0x202</code>
| <code>0x202</code>
|-
| <code>0x303</code>
| CEX
| 1
| 1
| ?
|
|-
| <code>0x304</code>
| ? (not CEX)
| 1
| 1
| ?
|
|-
| <code>0x305</code>
| DEX/TEST
| 1
| 1
| ?
|
|}
|}



Revision as of 02:37, 29 December 2017

Can be found in:

  • /user/license/*.rif, /user/license/*.idx
  • /user/home/*/license/*.rif, /user/home/*/license/*.idx
  • /mnt/disc/license/rif
  • /preinst2/app/CUSA00001/app.rif

Sample rif files.

RIF File

For a rif file that is paired with a idx file, see RIFA file.

RIF

Fields are big-endian.

Name Offset Size Example Remark
Signature 0x000 4 52 49 46 00 ('RIF\0')
Version 0x004 2 00 01 1 (current)
Unknown 0x006 2 FF FF
PSN Account ID 0x008 8 AB CD EF 01 02 34 78 91 0 if not KDS RIF
Start Timestamp 0x010 8 00 00 00 00 52 85 64 00 Start timestamp (unix/epoch)
End Timestamp 0x018 8 7F FF FF FF FF FF FF FF End timestamp (unix/epoch), typically INT64_MAX
Content ID 0x020 48 IP9100-CUSA00001_00-PLAYROOM00000000
Type 0x050 2 01 01 See Type
Unknown 0x052 2 00 0F
Unknown 0x054 2 00 1A
SKU Flag 0x056 2 00 01
Extra Flags 0x058 4 00 00 00 00
Unknown 0x060 4 00 02 00 00
Unknown 0x064 476 -
Disc Key 0x240 32 -
Secret Encryption IV 0x260 16 -
Encrypted Secret 0x270 144 - See Secret for when decrypted
RSA Signature 0x300 256 - Verified using public key depending on type

Type

Type FW Type Min Ver Max Ver Name Remark
0x000 All 1 1 KDS RIF
0x001 All 2 2 KDS RIF
0x002 All 3 3 KDS RIF
0x101 All 1 1 Isolated RIF
0x302
0x102 All 1 1 Disc RIF
0x200 DEX/TEST 1 1 Fake/Debug RIF
0x201
0x202
0x303 CEX 1 1 ?
0x304 ? (not CEX) 1 1 ?
0x305 DEX/TEST 1 1 ?

Secret

Name Offset Size Example Remark
Unknown 0x00 16 -
Unknown 0x10 16 -
Unknown 0x20 16 -
Content Key Seed 0x30 16 - Used to generate PFS key
SELF Key Seed 0x40 16 - Used to generate SELF key
Unknown 0x50 16 -
Unknown 0x60 16 -
Entitlement Key 0x70 16 -
Unknown 0x80 16 -

RIFA File

See also RIDX structure for the paired idx file.

When in this form, a RIFA header is present, followed by sequential rifs.

RIFA Header

Fields are big-endian.

Name Offset Size Example Remark
Signature 0x000 4 52 49 46 00 ('RIF\0')
Service ID 0x004 48 IP9100-CUSA00001_00 Size assumed
Unknown 0x034 972 -

RIDX File

RIDX Header

Fields are little-endian.

Name Offset Size Example Remark
Signature 0x00 4 78 64 69 72 ('xdir')
RIF Count 0x04 4 01 00 00 00
Version 0x08 1 01 1 (current)
Service ID 0x09 19 IP9100-CUSA00001_00
Unknown 0x1C 4 01 00 00 00
Entries 0x20 48 * RIF Count - See RIDX entry

RIDX Entry

Fields are little-endian.

Name Offset Size Example Remark
Entitlement label 0x00 16 PLAYROOM00000000
Offset 0x10 8 00 04 00 00 00 00 00 00 Offset into RIFA file
Size 0x18 8 00 04 00 00 00 00 00 00
Unknown 0x20 1 01
Unknown 0x21 15 -