PSN Handshake Signup: Difference between revisions
Jump to navigation
Jump to search
m (Created page with "''this page needs cleanup and proper formatting'' Signup Response Basic structure of the response 0x00: 4 Byte - main header -> 30 00 00 4f 0x04: 4 Byte - size -...") |
mNo edit summary |
||
(9 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Wikify}} | |||
Signup Response | ==Signup Response== | ||
Basic structure of the response | Basic structure of the response | ||
<pre> | |||
0x00: 4 Byte - main header -> 30 00 00 4f | 0x00: 4 Byte - main header -> 30 00 00 4f | ||
0x04: 4 Byte - size -> 00 5e 00 47 | 0x04: 4 Byte - size -> 00 5e 00 47 | ||
Line 13: | Line 13: | ||
0x26: 6 Byte - np: 00 01 00 00 00 sp-int: 00 01 00 00 00 23 | 0x26: 6 Byte - np: 00 01 00 00 00 sp-int: 00 01 00 00 00 23 | ||
0x2a: 4 Byte - {10 5d 00 0b} 0x000b - size of email | 0x2a: 4 Byte - {10 5d 00 0b} 0x000b - size of email | ||
0x2e: x Byte - email, here 0b in size | 0x2e: x Byte - email, here 0b in size</pre> | ||
Legend | Legend | ||
Main Header xx xx xx ss ss = size | Main Header xx xx xx ss ss = size | ||
Positive Auth | ==Positive Auth== | ||
Auth Reply Structure | Auth Reply Structure | ||
<pre> | |||
0x00: 4 Byte - main header -> 31 00 00 00 | 0x00: 4 Byte - main header -> 31 00 00 00 | ||
0x04: 4 Byte - size -> 00 00 00 d4 | 0x04: 4 Byte - size -> 00 00 00 d4 | ||
Line 53: | Line 53: | ||
0xc4: 4 Byte - {00 08 00 14} | 0xc4: 4 Byte - {00 08 00 14} | ||
0xc8: 20 Byte - SIGNATURE -> maybe HMAC/SHA1 | 0xc8: 20 Byte - SIGNATURE -> maybe HMAC/SHA1 | ||
</pre> | |||
* | * Often found before Name/Handle, assigned at signup and store at first 8 byte of cache | ||
* * | * * Seems to be the same for the same for every console, differs for others | ||
Size | Size | ||
Line 72: | Line 72: | ||
ss = data size in hex | ss = data size in hex | ||
Timestamps | ==Timestamps== | ||
These are Timestamp: | These are Timestamp: | ||
<pre> X = 00 00 01 2f 31 ff a0 58h -> 1302213927000d</pre> | |||
The X / 1000 = seconds since 1970, so this date is 08.04.2011 | The X / 1000 = seconds since 1970, so this date is 08.04.2011 | ||
PHP to easy recheck: | PHP to easy recheck: | ||
<pre> $timestamp = 1302010662000 / 1000; | |||
date("d.m.Y",$timestamp); | date("d.m.Y",$timestamp);</pre> | ||
It's just Miliseconds. | It's just Miliseconds. | ||
---- | |||
==Profile Settings== | |||
===Request=== | |||
On finalize auth ps3 request profile settings is xml based process | |||
request profile with auth encrypted to base64 and sends to a server with this : | |||
Headers: | |||
<pre> POST /basic_view/sec/get_self_profile HTTP/1.1 | |||
Connection Keep-Alive | |||
Content-Length 430 | |||
Accept-Encoding identity | |||
User-Agent PS3Community-agent/1.0.0 libhttp/1.0.0 | |||
Host Url:443</pre> | |||
Contents: | |||
<pre> <profile platform="ps3" sv="[VERSION]"> | |||
<ticket>[encrypted with base64 auth handshake]</ticket> | |||
<env>[enviroment]</env> | |||
<avatar size="l" /> | |||
</profile> | |||
</pre> | |||
nb: ''[environment] is one of the [[Environments]] lowercased'' | |||
===Response=== | |||
and get profile responses here : | |||
Headers: | |||
<pre> HTTP/1.1 200 OK | |||
Date Wed, 18 May 2011 08:12:42 GMT | |||
Server Apache-Coyote/1.1 | |||
Content-Type text/xml;charset=UTF-8 | |||
Content-Length 364 | |||
</pre> | |||
Content: | |||
<pre> | |||
<profile result="00"> | |||
<jid>[USERNAME]@[SERVER].[COUNTRY].[ENVIROMENT].URL</jid> | |||
<onlinename upd="0">[Nickname on psn]</onlinename> | |||
<country>[Country code]</country> | |||
<language1>3</language1> | |||
<language2 /> | |||
<language3 /> | |||
<aboutme /> | |||
<avatarurl id="1000">[png image url to set avatar display]</avatarurl> | |||
<ptlp>0</ptlp> | |||
</profile> | |||
</pre> | |||
*Get profile need's other certicate to auth ssl connection in this case Dnas root 05 | |||
{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> |
Latest revision as of 20:07, 5 February 2014
This article is marked for rewrite/restructuring in proper wiki format. You can help PS3 Developer wiki by editing it. |
Signup Response[edit | edit source]
Basic structure of the response
0x00: 4 Byte - main header -> 30 00 00 4f 0x04: 4 Byte - size -> 00 5e 00 47 0x08: 8 Byte - ? Identifier, often found before Name/Handle 0x10: 16 Byte - Name/Handle 0x20: 16 Byte - language 0x26: 6 Byte - np: 00 01 00 00 00 sp-int: 00 01 00 00 00 23 0x2a: 4 Byte - {10 5d 00 0b} 0x000b - size of email 0x2e: x Byte - email, here 0b in size
Legend
Main Header xx xx xx ss ss = size
Positive Auth[edit | edit source]
Auth Reply Structure
0x00: 4 Byte - main header -> 31 00 00 00 0x04: 4 Byte - size -> 00 00 00 d4 0x08: 4 Byte - frame head -> 30 00 00 ac 0x0c: 4 Byte - {00 08 00 14} 0x10: 20 Byte - SIGNATURE -> maybe HMAC/SHA1 0x24: 4 Byte - {00 01 00 04} 0x28: 4 Byte - ? 00 00 00 01 (cfr) or 00 00 01 00 (me & nks) (???) 0x2c: 4 Byte - {00 07 00 08} 0x30: 8 Byte - Timestamp (Login Time) 0x38: 4 Byte - {00 07 00 08} 0x3c: 8 Byte - Timestamp (Login Expiry) 0x44: 4 Byte - {00 02 00 08} 0x48: 8 Byte - Identifier * 0x50: 4 Byte - {00 04 00 20} 0x54: 32 Byte - Name/Handle 0x74: 4 Byte - {00 08 00 04} 0x78: 4 Byte - language 0x7c: 4 Byte - {00 04 00 04} 0x80: 4 Byte - ??? 0x84: 4 Byte - {00 08 00 18} 0x88: 24 Byte - service ID 0xa0: 4 Byte - {30 11 00 04} 0xa4: 4 Byte - ??? 07 and 3 undef 0xa8: 4 Byte - {00 01 00 04} 0xac: 4 Byte - ??? 2 undef and 02 00 0xb0: 8 Byte - 30 10 00 00 00 00 00 00 0xb8: 4 Byte - frame head -> 30 02 00 20 0xbc: 4 Byte - {00 08 00 04} 0xc0: 4 Byte - Network: NP: 34 CD 3C A9 SP/QA: B8 2F CB 09 0xc4: 4 Byte - {00 08 00 14} 0xc8: 20 Byte - SIGNATURE -> maybe HMAC/SHA1
- Often found before Name/Handle, assigned at signup and store at first 8 byte of cache
- * Seems to be the same for the same for every console, differs for others
Size xx xx xx ss ss = message size
Frame Head [xx yy ss ss] xx = 30 yy = unknown. maybe frame number ss = framesize in hex
Limiter {xx xx ss ss} xx = unknown ss = data size in hex
Timestamps[edit | edit source]
These are Timestamp:
X = 00 00 01 2f 31 ff a0 58h -> 1302213927000d
The X / 1000 = seconds since 1970, so this date is 08.04.2011
PHP to easy recheck:
$timestamp = 1302010662000 / 1000; date("d.m.Y",$timestamp);
It's just Miliseconds.
Profile Settings[edit | edit source]
Request[edit | edit source]
On finalize auth ps3 request profile settings is xml based process
request profile with auth encrypted to base64 and sends to a server with this :
Headers:
POST /basic_view/sec/get_self_profile HTTP/1.1 Connection Keep-Alive Content-Length 430 Accept-Encoding identity User-Agent PS3Community-agent/1.0.0 libhttp/1.0.0 Host Url:443
Contents:
<profile platform="ps3" sv="[VERSION]"> <ticket>[encrypted with base64 auth handshake]</ticket> <env>[enviroment]</env> <avatar size="l" /> </profile>
nb: [environment] is one of the Environments lowercased
Response[edit | edit source]
and get profile responses here :
Headers:
HTTP/1.1 200 OK Date Wed, 18 May 2011 08:12:42 GMT Server Apache-Coyote/1.1 Content-Type text/xml;charset=UTF-8 Content-Length 364
Content:
<profile result="00"> <jid>[USERNAME]@[SERVER].[COUNTRY].[ENVIROMENT].URL</jid> <onlinename upd="0">[Nickname on psn]</onlinename> <country>[Country code]</country> <language1>3</language1> <language2 /> <language3 /> <aboutme /> <avatarurl id="1000">[png image url to set avatar display]</avatarurl> <ptlp>0</ptlp> </profile>
- Get profile need's other certicate to auth ssl connection in this case Dnas root 05