public function login(array $dados, Sessao $s)
 {
     extract($dados);
     $repository = $this->em->getRepository('Models\\Usuario');
     $u = $repository->findBy(["email" => $email]);
     $user = $u[0];
     $k = base64_decode($user->getCadkey());
     $iv = base64_decode($user->getCadiv());
     $pass = stringToHex(mcrypt_encrypt(MCRYPT_3DES, $k, $senha, MCRYPT_MODE_CBC, $iv));
     if (!$user instanceof Usuario) {
         echo "Email não encontrado";
     } elseif ($user->getSenha() !== $pass) {
         echo "Senha incorreta.";
     } elseif ($user->getVerificado() === 0) {
         echo "Seu email ainda não foi validado.";
     } else {
         $udata["id"] = $user->getUsId();
         $udata["apelido"] = $user->getApelido();
         $udata["nome"] = $user->getNome() . " " . $user->getSobrenome();
         $s->set("usuario", $udata);
         $mc = new ControleMensagem($this->em);
         $msg = new Mensagem();
         $mc->enviar($msg, $user, "Entrou no chat");
         return true;
     }
 }
Example #2
0
 private function encodeEmail($matches)
 {
     if ($this->mode == 'native') {
         $iv_size = mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_CBC);
         $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
         $str = $matches[1] . '@' . $matches[2];
         $e = mcrypt_encrypt(MCRYPT_TRIPLEDES, $this->_em_key, $str, MCRYPT_MODE_CBC, $iv);
         return 'href="#send_email" rev="em_' . strlen($str) . '_' . substr(Utils::stringToHex($e), 2) . '_' . substr(Utils::stringToHex($iv), 2) . '" class="em_encrypted_native" ';
     }
     if ($this->mode == 'file') {
         $enc = substr(stringToHex(des($this->_em_key, $matches[1] . '@' . $matches[2], 1, 0, null)), 2);
         return 'href="#send_email" rev="em_' . $enc . '" class="em_encrypted_file" ';
     }
 }
 public function listar()
 {
     $dql = 'SELECT m, u.apelido FROM Models\\Mensagem m ' . 'JOIN m.usuario u ORDER BY m.dataTs DESC';
     $messages = $this->em->createQuery($dql)->setMaxResults(10)->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
     $s = Container::getSession();
     $k = $s->get("key");
     $iv = $s->get("iv");
     foreach ($messages as $msg) {
         $encrypted = mcrypt_encrypt(MCRYPT_3DES, safeHexToString($k), trim($msg[0]["conteudo"]), MCRYPT_MODE_CBC, safeHexToString($iv));
         $item = ["nick" => trim($msg["apelido"]), "mensagem" => stringToHex($encrypted), "hora" => $msg[0]["dataTs"]->format('d/m/y H:i:s')];
         $resp[] = $item;
     }
     echo json_encode($resp, JSON_UNESCAPED_UNICODE);
     return "";
 }
Example #4
0
 public function __construct()
 {
     $myRouter = Container::getRouter();
     $mySession = Container::getSession();
     // Obtendo uma chave para a sessão atual.
     $k = stringToHex(Container::getRandomCryptoKey());
     if (!$mySession->existe("key")) {
         $mySession->set("key", $k);
     }
     // Obtendo um vetor de inicialização para a sessão atual.
     $iv = stringToHex(Container::getRandomCryptoIv());
     if (!$mySession->existe("iv")) {
         $mySession->set("iv", $iv);
     }
     $this->pageDefault($myRouter);
     $this->pageChat($myRouter);
     $this->postCadUser($myRouter);
     $this->postLoginUser($myRouter);
     $this->getMensagens($myRouter);
     $this->postEnviarMensagem($myRouter);
     $this->postLoguot($myRouter);
     $this->getCryptoKeySessao($myRouter);
     $this->getCryptoIvSessao($myRouter);
 }