⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.50
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-horde
/
imp
/
lib
/
Basic
/
View File Name :
Pgp.php
* @category Horde * @copyright 2002-2017 Horde LLC * @license http://www.horde.org/licenses/gpl GPL * @package IMP */ class IMP_Basic_Pgp extends IMP_Basic_Base { /** * @var IMP_Crypt_Pgp */ protected $_pgp; /** */ protected function _init() { global $browser, $injector, $notification; $this->_pgp = $injector->getInstance('IMP_Crypt_Pgp'); /* Run through the action handlers */ switch ($this->vars->actionID) { case 'import_public_key': $this->_importKeyDialog('process_import_public_key'); break; case 'process_import_public_key': $import_keys = $this->_pgp->getKeys($this->vars->import_key); try { $browser->wasFileUploaded('upload_key', _("key")); $import_keys = array_merge_recursive($import_keys, $this->_pgp->getKeys(file_get_contents($_FILES['upload_key']['tmp_name']))); } catch (Horde_Browser_Exception $e) {} if (count($import_keys['public'])) { foreach ($import_keys['public'] as $val) { $key_info = $this->_pgp->addPublicKey($val); foreach ($key_info['signature'] as $sig) { $notification->push(sprintf(_("PGP Public Key for \"%s (%s)\" was successfully added."), $sig['name'], $sig['email']), 'horde.success'); } } $this->_reloadWindow(); } $notification->push(_("No PGP public key imported."), 'horde.error'); $this->vars->actionID = 'import_public_key'; $this->_importKeyDialog('process_import_public_key'); break; case 'import_personal_key': $this->_importKeyDialog('process_import_personal_key'); break; case 'process_import_personal_key': $import_key = $this->_pgp->getKeys($this->vars->import_key); if (empty($import_key['public']) || empty($import_key['private'])) { try { $browser->wasFileUploaded('upload_key', _("key")); $import_key = array_merge_recursive($import_key, $this->_pgp->getKeys(file_get_contents($_FILES['upload_key']['tmp_name']))); } catch (Horde_Browser_Exception $e) { if ($e->getCode() != UPLOAD_ERR_NO_FILE) { $notification->push($e, 'horde.error'); } } } if (!empty($import_key['public']) && !empty($import_key['private'])) { $this->_pgp->addPersonalPublicKey($import_key['public'][0]); $this->_pgp->addPersonalPrivateKey($import_key['private'][0]); $notification->push(_("Personal PGP key successfully added."), 'horde.success'); $this->_reloadWindow(); } $notification->push(_("Personal PGP key not imported."), 'horde.error'); $this->vars->actionID = 'import_personal_key'; $this->_importKeyDialog('process_import_personal_key'); break; case 'view_public_key': case 'info_public_key': try { $key = $this->_pgp->getPublicKey($this->vars->email, array('noserver' => true)); } catch (Horde_Exception $e) { $key = $e->getMessage(); } if ($this->vars->actionID == 'view_public_key') { $this->_textWindowOutput('PGP Public Key', $key); } $this->_printKeyInfo($key); break; case 'view_personal_public_key': $this->_textWindowOutput('PGP Personal Public Key', $this->_pgp->getPersonalPublicKey()); break; case 'info_personal_public_key': $this->_printKeyInfo($this->_pgp->getPersonalPublicKey()); break; case 'view_personal_private_key': $this->_textWindowOutput('PGP Personal Private Key', $this->_pgp->getPersonalPrivateKey()); break; case 'info_personal_private_key': $this->_printKeyInfo($this->_pgp->getPersonalPrivateKey()); break; } } /** */ static public function url(array $opts = array()) { return Horde::url('basic.php')->add('page', 'pgp'); } /** * Generate import key dialog. * * @param string $target Action ID for the UI screen. */ protected function _importKeyDialog($target) { global $notification, $page_output, $registry; $page_output->topbar = $page_output->sidebar = false; $page_output->addInlineScript(array( '$$("INPUT.horde-cancel").first().observe("click", function() { window.close(); })' ), true); $this->title = _("Import PGP Key"); /* Need to use regular status notification - AJAX notifications won't * show in popup windows. */ if ($registry->getView() == Horde_Registry::VIEW_DYNAMIC) { $notification->detach('status'); $notification->attach('status'); } $view = new Horde_View(array( 'templatePath' => IMP_TEMPLATES . '/pgp' )); $view->addHelper('Text'); $view->reload = $this->vars->reload; $view->selfurl = self::url(); $view->target = $target; $this->output = $view->render('import_key'); } /** * Reload the window. */ protected function _reloadWindow() { echo Horde::wrapInlineScript(array( 'opener.focus();'. 'opener.location.href="' . base64_decode($this->vars->reload) . '";', 'window.close();' )); exit; } /** * Print PGP Key information. * * @param string $key The PGP key. */ protected function _printKeyInfo($key = '') { try { $key_info = $this->_pgp->pgpPrettyKey($key); } catch (Horde_Crypt_Exception $e) { Horde::log($e, 'INFO'); $key_info = $e->getMessage(); } $this->_textWindowOutput('PGP Key Information', $key_info); } /** * Output text in a window. * * @param string $name The window name. * @param string $msg The text contents. */ protected function _textWindowOutput($name, $msg) { $GLOBALS['browser']->downloadHeaders($name, 'text/plain; charset=' . 'UTF-8', true, strlen($msg)); echo $msg; exit; } }