diaspora - remove debugging code on encrypt/decrypt
This commit is contained in:
parent
70017ebb8c
commit
49be394182
1 changed files with 4 additions and 38 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue