_pemString = $pemString; $this->_parse($passPhrase); } /** * @param string $passPhrase * @throws Zend_Crypt_Exception */ protected function _parse($passPhrase) { $result = openssl_get_privatekey($this->_pemString, $passPhrase); if (!$result) { /** * @see Zend_Crypt_Exception */ require_once 'Zend/Crypt/Exception.php'; throw new Zend_Crypt_Exception('Unable to load private key'); } $this->_opensslKeyResource = $result; $this->_details = openssl_pkey_get_details($this->_opensslKeyResource); } public function getPublicKey() { if ($this->_publicKey === null) { /** * @see Zend_Crypt_Rsa_Key_Public */ require_once 'Zend/Crypt/Rsa/Key/Public.php'; $this->_publicKey = new Zend_Crypt_Rsa_Key_Public($this->_details['key']); } return $this->_publicKey; } }