diaspora - remove debugging code on encrypt/decrypt

This commit is contained in:
Friendika 2011-08-09 06:40:28 -07:00
parent 70017ebb8c
commit 49be394182

View file

@ -69,7 +69,7 @@ function diaspora_msg_build($msg,$user,$contact,$prvkey,$pubkey) {
$inner_encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $inner_aes_key, $padded_data, MCRYPT_MODE_CBC, $inner_iv); $inner_encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $inner_aes_key, $padded_data, MCRYPT_MODE_CBC, $inner_iv);
$b64_data = base64_encode($inner_encrypted); $b64_data = base64_encode($inner_encrypted);
echo "inner: $b64_data";
$b64url_data = base64url_encode($b64_data); $b64url_data = base64url_encode($b64_data);
$b64url_stripped = str_replace(array("\n","\r"," ","\t"),array('','','',''),$b64url_data); $b64url_stripped = str_replace(array("\n","\r"," ","\t"),array('','','',''),$b64url_data);
@ -100,12 +100,8 @@ $decrypted_header = <<< EOT
EOT; EOT;
$decrypted_header = pkcs5_pad($decrypted_header,16); $decrypted_header = pkcs5_pad($decrypted_header,16);
logger("decrypted_header: $decrypted_header");
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $outer_aes_key, $decrypted_header, MCRYPT_MODE_CBC, $outer_iv);
logger( "encrypted_ciphertext: " . base64_encode($ciphertext)); $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $outer_aes_key, $decrypted_header, MCRYPT_MODE_CBC, $outer_iv);
logger("encrypt_outer_key: $b_outer_aes_key");
logger("ecnrypt_outer_iv: $b_outer_iv");
$outer_json = json_encode(array('iv' => $b_outer_iv,'key' => $b_outer_aes_key)); $outer_json = json_encode(array('iv' => $b_outer_iv,'key' => $b_outer_aes_key));
$encrypted_outer_key_bundle = ''; $encrypted_outer_key_bundle = '';
@ -135,44 +131,28 @@ EOT;
function diaspora_decode($importer,$xml) { function diaspora_decode($importer,$xml) {
$basedom = parse_xml_string($xml);
if($basedom) $basedom = parse_xml_string($xml);
logger('parsed dom');
$atom = $basedom->children(NAMESPACE_ATOM1); $atom = $basedom->children(NAMESPACE_ATOM1);
logger('atom: ' . count($atom));
$encrypted_header = json_decode(base64_decode($atom->encrypted_header)); $encrypted_header = json_decode(base64_decode($atom->encrypted_header));
print_r($encrypted_header);
$encrypted_aes_key_bundle = base64_decode($encrypted_header->aes_key); $encrypted_aes_key_bundle = base64_decode($encrypted_header->aes_key);
$ciphertext = base64_decode($encrypted_header->ciphertext); $ciphertext = base64_decode($encrypted_header->ciphertext);
logger('encrypted_aes: ' . print_r($encrypted_aes_key_bundle,true));
logger('ciphertext: ' . print_r($ciphertext,true));
$outer_key_bundle = ''; $outer_key_bundle = '';
openssl_private_decrypt($encrypted_aes_key_bundle,$outer_key_bundle,$importer['prvkey']); openssl_private_decrypt($encrypted_aes_key_bundle,$outer_key_bundle,$importer['prvkey']);
logger('outer_bundle: ' . print_r($outer_key_bundle,true));
$j_outer_key_bundle = json_decode($outer_key_bundle); $j_outer_key_bundle = json_decode($outer_key_bundle);
$outer_iv = base64_decode($j_outer_key_bundle->iv); $outer_iv = base64_decode($j_outer_key_bundle->iv);
$outer_key = base64_decode($j_outer_key_bundle->key); $outer_key = base64_decode($j_outer_key_bundle->key);
logger("outer_iv: $outer_iv");
logger("outer_key: $outer_key");
logger("ciphertext: " . base64_encode($ciphertext));
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $outer_key, $ciphertext, MCRYPT_MODE_CBC, $outer_iv); $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $outer_key, $ciphertext, MCRYPT_MODE_CBC, $outer_iv);
$decrypted = pkcs5_unpad($decrypted); $decrypted = pkcs5_unpad($decrypted);
logger('decrypted: ' . print_r($decrypted,true));
/** /**
* $decrypted now contains something like * $decrypted now contains something like
* *
@ -190,18 +170,11 @@ function diaspora_decode($importer,$xml) {
$inner_iv = base64_decode($idom->iv); $inner_iv = base64_decode($idom->iv);
$inner_aes_key = base64_decode($idom->aes_key); $inner_aes_key = base64_decode($idom->aes_key);
logger('idom: ' . print_r($idom,true));
$author_link = str_replace('acct:','',$idom->author->uri); $author_link = str_replace('acct:','',$idom->author->uri);
logger('inner_iv: ' . $inner_iv);
$dom = $basedom->children(NAMESPACE_SALMON_ME); $dom = $basedom->children(NAMESPACE_SALMON_ME);
if($dom)
logger('have dom');
logger('dom: ' . count($dom));
// figure out where in the DOM tree our data is hiding // figure out where in the DOM tree our data is hiding
if($dom->provenance->data) if($dom->provenance->data)
@ -220,8 +193,6 @@ logger('idom: ' . print_r($idom,true));
// Stash the signature away for now. We have to find their key or it won't be good for anything. // Stash the signature away for now. We have to find their key or it won't be good for anything.
$signature = base64url_decode($base->sig); $signature = base64url_decode($base->sig);
logger('signature: ' . bin2hex($signature));
// unpack the data // unpack the data
// strip whitespace so our data element will return to one big base64 blob // strip whitespace so our data element will return to one big base64 blob
@ -240,7 +211,6 @@ logger('idom: ' . print_r($idom,true));
$signed_data = $data . (($data[-1] != "\n") ? "\n" : '') . '.' . base64url_encode($type) . "\n" . '.' . base64url_encode($encoding) . "\n" . '.' . base64url_encode($alg) . "\n"; $signed_data = $data . (($data[-1] != "\n") ? "\n" : '') . '.' . base64url_encode($type) . "\n" . '.' . base64url_encode($encoding) . "\n" . '.' . base64url_encode($alg) . "\n";
logger('signed data: ' . $signed_data);
// decode the data // decode the data
$data = base64url_decode($data); $data = base64url_decode($data);
@ -254,10 +224,6 @@ logger('idom: ' . print_r($idom,true));
$inner_decrypted = pkcs5_unpad($inner_decrypted); $inner_decrypted = pkcs5_unpad($inner_decrypted);
logger('inner_decrypted: ' . $inner_decrypted);
if(! $author_link) { if(! $author_link) {
logger('mod-diaspora: Could not retrieve author URI.'); logger('mod-diaspora: Could not retrieve author URI.');
receive_return(400); receive_return(400);
@ -272,7 +238,7 @@ logger('idom: ' . print_r($idom,true));
$key = get_diaspora_key($author_link); $key = get_diaspora_key($author_link);
if(! $key) { if(! $key) {
logger('mod-salmon: Could not retrieve author key.'); logger('mod-diaspora: Could not retrieve author key.');
receive_return(400); receive_return(400);
} }