addFromPKCS12() 공개 메소드

Stores the public/private/additional certificates in the preferences from a given PKCS 12 file.
public addFromPKCS12 ( string $pkcs12, string $password, string $pkpass = null, boolean $signkey = false )
$pkcs12 string The PKCS 12 data.
$password string The password of the PKCS 12 file.
$pkpass string The password to use to encrypt the private key.
$signkey boolean Is this the secondary key for signing?
예제 #1
0
파일: Smime.php 프로젝트: raz0rsdge/horde
 /**
  */
 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;
     }
 }
예제 #2
0
파일: Smime.php 프로젝트: horde/horde
 /**
  */
 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;
     }
 }