<?php

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////

// Ignore this code, it is used to print the source's code instead of
// execute its contents.

if (isset($_GET['showSource']))
{
  
highlight_file(__FILE__);
  die();
}

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////

include ("config.php");

include_once (
"security.php");

/////////////////////////////////////////////////////////////////////

$real_message "The life is good!";

echo 
"<b>* Encrypt the message generating a new iv (generated by the client).</b><br><br>";

$i1 encryptData($config['encryption_algorithm'],
                  
$config['encryption_mode'],
                  
$config['random_source'],
                  
$config['encryption_key'],
                  
$real_message,
                  
null);

$edata $i1[1];
$iv    $i1[0];

echo 
"Real Message: <span style='background: yellow'>\"{$real_message}\"</span><br>
      Encrypted Message: <span style='background: salmon'>
{$edata}</span><br>
      Iv: <span style='background: pink'>
$iv</span><br><br>";

echo 
"<b>* Decrypt the message.</b><br><br>"

$i2 decryptData($config['encryption_algorithm'],
                  
$config['encryption_mode'],
                  
$config['encryption_key'],
                  
$iv,
                  
$edata);

echo 
"Decrypted Message: <span style='background: yellow'>\"{$i2}\"</span><br><br>";

echo 
"<hr><br>";

/////////////////////////////////////////////////////////////////////

$real_message "I feel nice!";

echo 
"<b>* Encrypt the message using an especific iv (sent by client).</b><br><br>";

$i3 encryptData($config['encryption_algorithm'],
                  
$config['encryption_mode'],
                  
$config['random_source'],
                  
$config['encryption_key'],
                  
$real_message,
                  
$iv);

$edata2 $i3[1];
$iv2    $i3[0];

echo 
"Real Message: <span style='background: orange'>\"{$real_message}\"</span><br>
      Encrypted Message: <span style='background: cyan'>
{$edata2}</span><br>
      Iv: <span style='background: pink'>
$iv2</span><br><br>";

echo 
"<b>* Decrypt the message with the already known iv.</b><br><br>"

$i4 decryptData($config['encryption_algorithm'],
                  
$config['encryption_mode'],
                  
$config['encryption_key'],
                  
$iv,
                  
$edata2);

echo 
"Decrypted Message: <span style='background: orange'>\"{$i4}\"</span><br><br>";

echo 
"<hr><br><br>";

/////////////////////////////////////////////////////////////////////

?>