2 First create a global unique userid
6 https://macgirvin.com/1
8 $guuid = base64url_encode(hash('whirlpool','https://macgirvin.com/1.' . mt_rand(1000000,9999999),1);
11 Then create a hashed site destination.
13 $gduid = base64url_encode(hash('whirlpool', $guuid . 'https://macgirvin.com',1);
15 These two keys will identify you as a person+site pair in the future.
16 You will also obtain a password upon introducing yourself to a site.
17 This can be used to edit locations in the future. You will always keep your global unique userid
20 Introduce yourself to a site:
23 POST https://example.com/post
29 'site' => 'https://macgirvin.com'
30 'info' => 'mike@macgirvin.com'
37 'pass' => me_encrypt($random_string)
44 POST https://example.com
49 'address' => $new_gduid
50 'site' => 'https://newsite.com'
51 'info' => 'mike@macgirvin.com'
52 'pass' => me_encrypt($gduid . '.' . $pass)
59 'pass' => me_encrypt($random_string)
66 POST https://example.com
69 'type' => 'remove_location'
72 'pass' => me_encrypt($pass)
86 This message may be reversed/repeated by the destination site to confirm
89 POST https://example.com/post
92 'type' => 'contact_add'
95 'target' => 'bobjones@example.com'
96 'flags' => HIDDEN=0,FOLLOW=1,SHARE=1
97 'confirm' => me_encrypt($guuid . '.' . $pass)
117 POST https://example.com/post
137 POST https://macgirvin.com
140 'retrieve' => $post_id
141 'challenge' => you_encrypt('abc123')
142 'verify' => me_encrypt('xyz456' . '.' . $gduid)
150 'response' => 'abc123'
151 'data' => encrypted or raw structured post