$public = $openSSL_Bob->certificate(); echo "<h4>extrai a chave publica do Bob </h4>"; //cria chave AES $AES_key = bin2hex(openssl_random_pseudo_bytes(12, $cstrong)); echo '<h4>cria chave AES </h4>"' . $AES_key . '"'; //encripta a mensagem com a chave AES $encrypted_message = $openSSL_Bob->encryptAES256($message, $AES_key); echo '<h4>encripta a mensagem com a chave AES </h4>"' . $encrypted_message . '"'; //encripta a chave AES com a chave publica do Bob $encrypted_AES_key = $openSSL_Bob->encrypt($AES_key); echo '<h4>encripta a chave AES com a chave publica do Bob </h4>"' . $encrypted_AES_key . '"'; //assina a mensagem com chave privada da Alice $mensagem_assinada = $openSSL_Alice->sign($encrypted_message, $passphrase_Alice); echo '<h4>assina a mensagem com chave privada da Alice </h4>"' . $mensagem_assinada . '"'; //notifica o bob $Bob = $database->findUserByCerticateSerialNumber($openSSL_Bob->getCertificateSerialNumber()); $database->insertMessage($FromUser_id, "3", $encrypted_message, $encrypted_AES_key); echo "<h4>notifica o Bob </h4>"; echo "IMPECAVEL"; // FIM PRIMEIRA PARTE // SEGUNDA PARTE //recebe a notificacao echo " <h1> <br>PARTE 3 </h1>"; echo "<h4>recebe a notificacao </h4>"; echo "<h4>Tem " . $database->checkForNotifications("3") . " mensagens por ler </h4>"; //verifica se a assinatura da mensagem coincide com a do certificado da Alice if ($openSSL_Alice->verify($mensagem_assinada) != FALSE) { echo "<h4>verifica se a assinatura da mensagem coincide com a do certificado da Alice </h4>"; //desincripta a chave AES com chave privada $decrypted_AES_key = $openSSL_Bob->decrypt($encrypted_AES_key, $passphrase_Bob); echo ' <h4>//desincripta a chave AES com chave privada</h4>"' . $decrypted_AES_key . '"<br>';