PSN Handshake Signup

From PS3 Developer wiki
Revision as of 11:43, 23 May 2011 by Dospiedra (talk | contribs)
Jump to navigation Jump to search

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		   -> 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

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 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.


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>MQAAAAAAANQwAACsAAgAFJqeezSrKo6St53LChESIjtSY5rTAAEABAAAAAEABwAIAAABMAICu2sABwAIAAABLlUtF/AAAgAIC3QjMt2rDY4ABAAgZW11bGFjaW9uMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEZXMAAwAEAARhMAAAAAgAGElWMDAwMS1OUFhTMDEwMDFfMDAAAAAAADARAAQHxAgJAAEABBYAAgAwEAAAAAAAADACACAACAAEuC/LCQAIABRcn59AJbIHKB8u3RSCRv7D9wU+gQ==</ticket> <env>np</env> <avatar size="l" /> </profile>

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