/** */ protected function _init() { global $injector, $notification; $this->_smime = $injector->getInstance('IMP_Smime'); /* 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': try { $publicKey = $this->_getImportKey($this->vars->import_key); /* Add the public key to the storage system. */ $this->_smime->addPublicKey($publicKey); $notification->push(_("S/MIME public key successfully added."), 'horde.success'); $this->_reloadWindow(); } catch (Horde_Browser_Exception $e) { $notification->push(_("No S/MIME public key imported."), 'horde.error'); } catch (Horde_Exception $e) { $notification->push($e); } $this->vars->actionID = 'import_public_key'; $this->_importKeyDialog('process_import_public_key'); break; case 'view_public_key': case 'info_public_key': try { $key = $this->_smime->getPublicKey($this->vars->email); } catch (Horde_Exception $e) { $key = $e->getMessage(); } if ($this->vars->actionID == 'view_public_key') { $this->_textWindowOutput('S/MIME Public Key', $key); } $this->_printCertInfo($key); break; case 'view_personal_public_key': $this->_textWindowOutput('S/MIME Personal Public Key', $this->_smime->getPersonalPublicKey()); break; case 'info_personal_public_key': $this->_printCertInfo($this->_smime->getPersonalPublicKey()); break; case 'view_personal_private_key': $this->_textWindowOutput('S/MIME Personal Private Key', $this->_smime->getPersonalPrivateKey()); break; case 'import_personal_certs': $this->_importKeyDialog('process_import_personal_certs'); break; case 'process_import_personal_certs': try { $pkcs12 = $this->_getImportKey($this->vars->import_key); $this->_smime->addFromPKCS12($pkcs12, $this->vars->upload_key_pass, $this->vars->upload_key_pk_pass); $notification->push(_("S/MIME Public/Private Keypair successfully added."), 'horde.success'); $this->_reloadWindow(); } catch (Horde_Browser_Exception $e) { $notification->push(_("Personal S/MIME certificates NOT imported."), 'horde.error'); } catch (Horde_Exception $e) { $notification->push(_("Personal S/MIME certificates NOT imported: ") . $e->getMessage(), 'horde.error'); } $this->vars->actionID = 'import_personal_certs'; $this->_importKeyDialog('process_import_personal_certs'); break; } }
/** */ protected function _init() { global $injector, $notification; $this->_smime = $injector->getInstance('IMP_Smime'); /* Run through the action handlers */ switch ($this->vars->actionID) { case 'import_public_key': $this->_importKeyDialog('public'); break; case 'process_import_public_key': try { $publicKey = $this->_getImportKey('upload_key', $this->vars->import_key); /* Add the public key to the storage system. */ $this->_smime->addPublicKey($publicKey); $notification->push(_("S/MIME public key successfully added."), 'horde.success'); $this->_reloadWindow(); } catch (Horde_Browser_Exception $e) { $notification->push(_("No S/MIME public key imported."), 'horde.error'); } catch (Horde_Exception $e) { $notification->push($e); } $this->vars->actionID = 'import_public_key'; $this->_importKeyDialog('public'); break; case 'view_public_key': case 'info_public_key': try { $key = $this->_smime->getPublicKey($this->vars->email); } catch (Horde_Exception $e) { $key = $e->getMessage(); } if ($this->vars->actionID == 'view_public_key') { $this->_textWindowOutput('S/MIME Public Key', $key); } $this->_printCertInfo($key); break; case 'view_personal_public_key': case 'view_personal_public_sign_key': $this->_textWindowOutput('S/MIME Personal Public Key', $this->_smime->getPersonalPublicKey($this->vars->actionID == 'view_personal_public_sign_key')); break; case 'info_personal_public_key': case 'info_personal_public_sign_key': $this->_printCertInfo($this->_smime->getPersonalPublicKey($this->vars->actionID == 'info_personal_public_sign_key')); break; case 'view_personal_private_key': case 'view_personal_private_sign_key': $this->_textWindowOutput('S/MIME Personal Private Key', $this->_smime->getPersonalPrivateKey($this->vars->actionID == 'view_personal_private_sign_key')); break; case 'import_personal_certs': $this->_importKeyDialog('personal'); break; case 'process_import_personal_certs': $reload = false; $pkcs12_2nd = false; try { $pkcs12 = $this->_getImportKey('upload_key'); $this->_smime->addFromPKCS12($pkcs12, $this->vars->upload_key_pass, $this->vars->upload_key_pk_pass); $notification->push(_("S/MIME Public/Private Keypair successfully added."), 'horde.success'); if ($pkcs12_2nd = $this->_getSecondaryKey()) { $this->_smime->addFromPKCS12($pkcs12, $this->vars->upload_key_pass2, $this->vars->upload_key_pk_pass2, true); $notification->push(_("Secondary S/MIME Public/Private Keypair successfully added."), 'horde.success'); } $reload = true; } catch (Horde_Browser_Exception $e) { if ($e->getCode() != UPLOAD_ERR_NO_FILE || !($pkcs12_2nd = $this->_getSecondaryKey())) { $notification->push(_("Personal S/MIME certificates NOT imported."), 'horde.error'); } } catch (Horde_Exception $e) { $notification->push(_("Personal S/MIME certificates NOT imported: ") . $e->getMessage(), 'horde.error'); } if (!$reload && ($pkcs12_2nd || ($pkcs12_2nd = $this->_getSecondaryKey()))) { if (!$this->_smime->getPersonalPublicKey()) { $notification->push(_("Cannot import secondary personal S/MIME certificates without primary certificates."), 'horde.error'); } else { try { $this->_smime->addFromPKCS12($pkcs12_2nd, $this->vars->upload_key_pass2, $this->vars->upload_key_pk_pass2, true); $notification->push(_("Secondary S/MIME Public/Private Keypair successfully added."), 'horde.success'); $reload = true; } catch (Horde_Exception $e) { $notification->push(_("Personal S/MIME certificates NOT imported: ") . $e->getMessage(), 'horde.error'); } } } if ($reload) { $this->_reloadWindow(); } $this->vars->actionID = 'import_personal_certs'; $this->_importKeyDialog('personal'); break; } }