/**
*/
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;
}
}