Envelope Files: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The PS4 requests a number of .env files from Sony servers, they use some form of encryption so I am uncertain as to what they contain.
Envelope files are a general purpose container format for encrypting and signing a message. This format was likely introduced in FW 3.00 (>2.56 <=3.50).


Here is a list of the ones I've logged on my PS4:
Messages are encrypted using AES128 in CTS mode, and signed using a public key. For encryption keys or public keys, see [[Envelope Files/Encryption|Encryption]].


* http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgdc/np/v00/bgdc-config.xml.env  
== Format ==
* http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v02/bgft.env
 
* http://ps4-system.sec.np.dl.playstation.net/ps4-system/hid_config/np/v00/hid_config.env
Fields are little-endian.
* http://ps4-system.sec.np.dl.playstation.net/ps4-system/hidusbpower/np/v00/hidusbpower.env
 
* http://ps4-system.sec.np.dl.playstation.net/ps4-system/netev/np/v00/netev-config.env  
{| class="wikitable sortable"
* http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config/np/v06/sl-config.xml.env
! style="width: 25%" | Name
* http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config-dev/np/v06/sl-config-dev.xml.env  
! style="width: 5%" | Offset
* http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config-kamaji/np/v01/sl-config-kamaji.xml.env
! style="width: 5%" | Size
* http://ps4-system.sec.np.dl.playstation.net/ps4-system/timezone/np/v00/timezone.dat.env  
! style="width: 25%" | Example
* http://ps4-system.sec.np.dl.playstation.net/ps4-system/wctl/np/v00/wctl-config.env
! style="width: 40%" | Remark
|-
| Signature || <code>0x000</code> || 4 || <code>CC CB 73 51</code> || Four bytes, not an int
|-
| Version || <code>0x004</code> || 4 || <code>00 00 00 00</code> || Only version 0 (zero) exists
|-
| Content ID || <code>0x008</code> || 4 || <code>01 00 00 00</code> || See [[#Content|Content]]
|-
| Unknown || <code>0x00C</code> || 4 || <code>00 00 00 00</code> || Always 0
|-
| Message Size || <code>0x010</code> || 8 || <code>83 03 00 00 00 00 00 00</code> || Size of the message in bytes.
|-
| Unknown || <code>0x018</code> || 8 || <code>00 00 00 00 00 00 00 00</code> || Always 0
|-
| Message IV || <code>0x020</code> || 16 || || IV for encrypted message
|-
| Message Hash || <code>0x030</code> || 32 || || SHA256 hash of unencrypted message bytes
|-
| File Signature || <code>0x050</code> || 256 || || Verified using public key
|-
| Message Data || <code>0x150</code> || Message Size || || Encrypted message bytes. Encryption key and public key varies with content ID
|}
 
== Content ==
 
The underlying unencrypted message format varies between different content.
 
{| class="wikitable sortable"
! style="width: 5%" | ID
! style="width: 15%" | Name
! style="width: 15%" | Description
! style="width: 15%" | Process
! style="width: 30%" | Files/URLs
! style="width: 20%" | Remarks
|-
| <code>1</code>
| beta_updatelist
| Beta Update List
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code><nowiki>https://fus01.ps4.update.playstation.net/update/ps4/beta/list/us/ps4-updatelist_?.xml</nowiki></code>
| Password "?" in URL varies with system version
|-
| <code>2</code>
| timezone
| Timezone
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code>/system_data/priv/settings_app/timezone.dat.env</code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/timezone/np/v00/timezone.dat.env</nowiki></code>
|
|-
| <code>3</code>
| system_log_config
| System Log Config
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code>/system/priv/system_log_ro/config/*.env</code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config/np/v07/sl-config.xml.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config-dev/np/v07/sl-config-dev.xml.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config-dev/np/v06/sl-config-dev.xml.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config-kamaji/np/v01/sl-config-kamaji.xml.env</nowiki></code>
| Version in URL varies with system version
|-
| <code>4</code>
| system_log_unknown
|
| <code>/system/vsh/SceShellCore.elf</code>
|
|-
| <code>5</code>
| bgdc_config
| Background Daily Checker
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgdc/np/v00/bgdc-config.xml.env</nowiki></code>
|
|-
| <code>6</code>
| wctl_config
| Title Workaround Control
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code>/mnt/disc/PS4/WCTL/wctl-config.env</code>
* <code>/system_data/priv/workaround_ctl/title_workaround.env</code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/wctl/np/v00/wctl-config.env</nowiki></code>
|
|-
| <code>7</code>
| morpheus_updatelist
| Morpheus (VR) Update List
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code><nowiki>https://f01.vrs.update.playstation.net/update/vrs/list/vrs-updatelist-utDCG9ywva92MlS0rXGRUJCjpDtsw38V.xml</nowiki></code>
|
|-
| <code>8</code>
| netev_config
|
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code>/system_data/priv/netev/netev-config.env</code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/netev/np/v00/netev-config.env</nowiki></code>
|
|-
| <code>9</code>
| gls_config
|
| <code>/system/vsh/app/NPXS21000/eboot.bin</code>
|
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/gls/np/v00/gls-default-config.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/gls/np/v01/gls-default-config.env</nowiki></code>
|
|-
| <code>10</code>
| hid_config
|
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code>/system/priv/hid_config_service_ro/hid_config.env</code>
* <code>/system_data/priv/hid_config_service/hid_config.env</code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/hid_config/np/v00/hid_config.env</nowiki></code>
|
|-
| <code>12</code>
| hidusbpower
|
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code>/system/priv/hid_config_service_ro/hidusbpower.env</code>
* <code>/system_data/priv/hid_config_service/hidusbpower.env</code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/hidusbpower/np/v00/hidusbpower.env</nowiki></code>
| Added >3.70 <=4.05
|-
| <code>13</code>
| patch_hmac_key
|
| <code>/system/vsh/SceShellCore.elf</code>
| Embedded data in <code>/system/vsh/SceShellCore.elf</code>
|
|-
| <code>14</code>
| bgft
| Background File Transfer
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v00/bgft.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v01/bgft.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v02/bgft.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v03/bgft.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v04/bgft.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v05/bgft.env</nowiki></code>
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v06/bgft.env</nowiki></code>
| Version in URL varies with system version
|-
| <code>17</code>
| system_log_privacy
|
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code>/system/priv/system_log_ro/platform_privacy/*.env</code>
| Added 5.00
|-
| <code>18</code>
| webbrowser_xutil
|
| <code>/system_ex/app/NPXS20001/eboot.bin</code>
|
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/webbrowser/np/v00/webbrowser_features.env</nowiki></code>
|
* Added 5.00
* Exposed to C# shell via <code>sceXutilGetEnvelopeDataFromFile<code> / <code>sceXutilGetEnvelopeDataFromBuffer</code>.
|-
| <code>19</code>
| entitlementmgr_config
|
| <code>/system/vsh/SceShellCore.elf</code>
|
* <code><nowiki>https://ps4-system.sec.np.dl.playstation.net/ps4-system/entitlementmgr/np/v00/entitlementmgr_config.env</nowiki></code>
| Added >5.05 <=7.00
|-
| <code>21</code>
| jsnex_netflixdeckeys
|
| <code>/system_ex/app/NPXS20001/eboot.bin</code>
| Embedded data in <code>/system_ex/app/NPXS20001/eboot.bin</code>
| Added >5.05 <=7.00
|-
| <code>22</code>
| party_config
|
| <code>/system/vsh/app/NPXS21002/eboot.bin</code>
|
* <code><nowiki>http://ps4-system.sec.np.dl.playstation.net/ps4-system/party/np/v00/party_config.env</nowiki></code>
| Added >5.05 <=7.00
|}
 
{{File Formats}}
<noinclude>[[Category:Main]]</noinclude>

Latest revision as of 17:35, 28 March 2020

Envelope files are a general purpose container format for encrypting and signing a message. This format was likely introduced in FW 3.00 (>2.56 <=3.50).

Messages are encrypted using AES128 in CTS mode, and signed using a public key. For encryption keys or public keys, see Encryption.

Format[edit | edit source]

Fields are little-endian.

Name Offset Size Example Remark
Signature 0x000 4 CC CB 73 51 Four bytes, not an int
Version 0x004 4 00 00 00 00 Only version 0 (zero) exists
Content ID 0x008 4 01 00 00 00 See Content
Unknown 0x00C 4 00 00 00 00 Always 0
Message Size 0x010 8 83 03 00 00 00 00 00 00 Size of the message in bytes.
Unknown 0x018 8 00 00 00 00 00 00 00 00 Always 0
Message IV 0x020 16 IV for encrypted message
Message Hash 0x030 32 SHA256 hash of unencrypted message bytes
File Signature 0x050 256 Verified using public key
Message Data 0x150 Message Size Encrypted message bytes. Encryption key and public key varies with content ID

Content[edit | edit source]

The underlying unencrypted message format varies between different content.

ID Name Description Process Files/URLs Remarks
1 beta_updatelist Beta Update List /system/vsh/SceShellCore.elf
  • https://fus01.ps4.update.playstation.net/update/ps4/beta/list/us/ps4-updatelist_?.xml
Password "?" in URL varies with system version
2 timezone Timezone /system/vsh/SceShellCore.elf
  • /system_data/priv/settings_app/timezone.dat.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/timezone/np/v00/timezone.dat.env
3 system_log_config System Log Config /system/vsh/SceShellCore.elf
  • /system/priv/system_log_ro/config/*.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config/np/v07/sl-config.xml.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config-dev/np/v07/sl-config-dev.xml.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config-dev/np/v06/sl-config-dev.xml.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/sl-config-kamaji/np/v01/sl-config-kamaji.xml.env
Version in URL varies with system version
4 system_log_unknown /system/vsh/SceShellCore.elf
5 bgdc_config Background Daily Checker /system/vsh/SceShellCore.elf
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgdc/np/v00/bgdc-config.xml.env
6 wctl_config Title Workaround Control /system/vsh/SceShellCore.elf
  • /mnt/disc/PS4/WCTL/wctl-config.env
  • /system_data/priv/workaround_ctl/title_workaround.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/wctl/np/v00/wctl-config.env
7 morpheus_updatelist Morpheus (VR) Update List /system/vsh/SceShellCore.elf
  • https://f01.vrs.update.playstation.net/update/vrs/list/vrs-updatelist-utDCG9ywva92MlS0rXGRUJCjpDtsw38V.xml
8 netev_config /system/vsh/SceShellCore.elf
  • /system_data/priv/netev/netev-config.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/netev/np/v00/netev-config.env
9 gls_config /system/vsh/app/NPXS21000/eboot.bin
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/gls/np/v00/gls-default-config.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/gls/np/v01/gls-default-config.env
10 hid_config /system/vsh/SceShellCore.elf
  • /system/priv/hid_config_service_ro/hid_config.env
  • /system_data/priv/hid_config_service/hid_config.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/hid_config/np/v00/hid_config.env
12 hidusbpower /system/vsh/SceShellCore.elf
  • /system/priv/hid_config_service_ro/hidusbpower.env
  • /system_data/priv/hid_config_service/hidusbpower.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/hidusbpower/np/v00/hidusbpower.env
Added >3.70 <=4.05
13 patch_hmac_key /system/vsh/SceShellCore.elf Embedded data in /system/vsh/SceShellCore.elf
14 bgft Background File Transfer /system/vsh/SceShellCore.elf
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v00/bgft.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v01/bgft.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v02/bgft.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v03/bgft.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v04/bgft.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v05/bgft.env
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/bgft/np/v06/bgft.env
Version in URL varies with system version
17 system_log_privacy /system/vsh/SceShellCore.elf
  • /system/priv/system_log_ro/platform_privacy/*.env
Added 5.00
18 webbrowser_xutil /system_ex/app/NPXS20001/eboot.bin
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/webbrowser/np/v00/webbrowser_features.env
  • Added 5.00
  • Exposed to C# shell via sceXutilGetEnvelopeDataFromFile / sceXutilGetEnvelopeDataFromBuffer.
19 entitlementmgr_config /system/vsh/SceShellCore.elf
  • https://ps4-system.sec.np.dl.playstation.net/ps4-system/entitlementmgr/np/v00/entitlementmgr_config.env
Added >5.05 <=7.00
21 jsnex_netflixdeckeys /system_ex/app/NPXS20001/eboot.bin Embedded data in /system_ex/app/NPXS20001/eboot.bin Added >5.05 <=7.00
22 party_config /system/vsh/app/NPXS21002/eboot.bin
  • http://ps4-system.sec.np.dl.playstation.net/ps4-system/party/np/v00/party_config.env
Added >5.05 <=7.00