function mega_download_file($id, $k, $iv, $meta_mac) { $dl_url = mega_api_req(array('a' => 'g', 'g' => 1, 'p' => $id)); $ch = curl_init($dl_url->g); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_VERBOSE, true); $data_enc = curl_exec($ch); curl_close($ch); $data = aes_ctr_decrypt($data_enc, a32_to_str($k), a32_to_str($iv)); file_put_contents('../torrents/test.ipa', $data); /* $file_mac = cbc_mac($data, $k, $iv); print "\nchecking mac\n"; if (array($file_mac[0] ^ $file_mac[1], $file_mac[2] ^ $file_mac[3]) != $meta_mac) { echo "MAC mismatch"; } */ }
function downloadfile($file, $attributes, $k, $iv, $meta_mac) { $dl_url = api_req(array('a' => 'g', 'g' => 1, 'n' => $file->h)); $data_enc = file_get_contents($dl_url->g); $data = aes_ctr_decrypt($data_enc, a32_to_str($k), a32_to_str($iv)); file_put_contents($attributes->n, $data); $file_mac = cbc_mac($data, $k, $iv); if (array($file_mac[0] ^ $file_mac[1], $file_mac[2] ^ $file_mac[3]) != $meta_mac) { echo "MAC mismatch"; } }