Browse Source

diaspora - remove debugging code on encrypt/decrypt

pull/1/head
Friendika 11 years ago
parent
commit
49be394182
  1. 42
      include/diaspora.php

42
include/diaspora.php

@ -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);
$b64_data = base64_encode($inner_encrypted);
echo "inner: $b64_data";
$b64url_data = base64url_encode($b64_data);
$b64url_stripped = str_replace(array("\n","\r"," ","\t"),array('','','',''),$b64url_data);
@ -100,12 +100,8 @@ $decrypted_header = <<< EOT
EOT;
$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));
logger("encrypt_outer_key: $b_outer_aes_key");
logger("ecnrypt_outer_iv: $b_outer_iv");
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $outer_aes_key, $decrypted_header, MCRYPT_MODE_CBC, $outer_iv);
$outer_json = json_encode(array('iv' => $b_outer_iv,'key' => $b_outer_aes_key));
$encrypted_outer_key_bundle = '';
@ -135,44 +131,28 @@ EOT;
function diaspora_decode($importer,$xml) {
$basedom = parse_xml_string($xml);
if($basedom)
logger('parsed dom');
$basedom = parse_xml_string($xml);
$atom = $basedom->children(NAMESPACE_ATOM1);
logger('atom: ' . count($atom));
$encrypted_header = json_decode(base64_decode($atom->encrypted_header));
print_r($encrypted_header);
$encrypted_aes_key_bundle = base64_decode($encrypted_header->aes_key);
$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 = '';
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);
$outer_iv = base64_decode($j_outer_key_bundle->iv);
$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 = pkcs5_unpad($decrypted);
logger('decrypted: ' . print_r($decrypted,true));
/**
* $decrypted now contains something like
*
@ -190,18 +170,11 @@ function diaspora_decode($importer,$xml) {
$inner_iv = base64_decode($idom->iv);
$inner_aes_key = base64_decode($idom->aes_key);
logger('idom: ' . print_r($idom,true));
$author_link = str_replace('acct:','',$idom->author->uri);
logger('inner_iv: ' . $inner_iv);
$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
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.
$signature = base64url_decode($base->sig);
logger('signature: ' . bin2hex($signature));
// unpack the data
// 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";
logger('signed data: ' . $signed_data);
// decode the data
$data = base64url_decode($data);
@ -254,10 +224,6 @@ logger('idom: ' . print_r($idom,true));
$inner_decrypted = pkcs5_unpad($inner_decrypted);
logger('inner_decrypted: ' . $inner_decrypted);
if(! $author_link) {
logger('mod-diaspora: Could not retrieve author URI.');
receive_return(400);
@ -272,7 +238,7 @@ logger('idom: ' . print_r($idom,true));
$key = get_diaspora_key($author_link);
if(! $key) {
logger('mod-salmon: Could not retrieve author key.');
logger('mod-diaspora: Could not retrieve author key.');
receive_return(400);
}

Loading…
Cancel
Save