| | |
| | | function init() |
| | | { |
| | | $homedir = $this->rc->config->get('enigma_pgp_homedir', INSTALL_PATH . 'plugins/enigma/home'); |
| | | $debug = $this->rc->config->get('enigma_debug'); |
| | | |
| | | if (!$homedir) |
| | | return new enigma_error(enigma_error::INTERNAL, |
| | |
| | | $this->gpg = new Crypt_GPG(array( |
| | | 'homedir' => $this->homedir, |
| | | // 'binary' => '/usr/bin/gpg2', |
| | | // 'debug' => true, |
| | | 'debug' => $debug ? array($this, 'debug') : false, |
| | | )); |
| | | } |
| | | catch (Exception $e) { |
| | |
| | | public function gen_key($data) |
| | | { |
| | | try { |
| | | $debug = $this->rc->config->get('enigma_debug'); |
| | | $keygen = new Crypt_GPG_KeyGenerator(array( |
| | | 'homedir' => $this->homedir, |
| | | // 'binary' => '/usr/bin/gpg2', |
| | | // 'debug' => true, |
| | | 'debug' => $debug ? array($this, 'debug') : false, |
| | | )); |
| | | |
| | | $key = $keygen |
| | |
| | | $ekey->name = trim($ekey->users[0]->name . ' <' . $ekey->users[0]->email . '>'); |
| | | |
| | | foreach ($key->getSubKeys() as $idx => $subkey) { |
| | | $usage = 0; |
| | | if ($subkey->canSign()) { |
| | | $usage += enigma_key::CAN_SIGN; |
| | | } |
| | | if ($subkey->canEncrypt()) { |
| | | $usage += enigma_key::CAN_ENCRYPT; |
| | | } |
| | | |
| | | $skey = new enigma_subkey(); |
| | | $skey->id = $subkey->getId(); |
| | | $skey->revoked = $subkey->isRevoked(); |
| | |
| | | $skey->has_private = $subkey->hasPrivate(); |
| | | $skey->algorithm = $subkey->getAlgorithm(); |
| | | $skey->length = $subkey->getLength(); |
| | | $skey->usage = $usage; |
| | | $skey->usage = $subkey->usage(); |
| | | |
| | | $ekey->subkeys[$idx] = $skey; |
| | | }; |
| | |
| | | |
| | | return $ekey; |
| | | } |
| | | |
| | | /** |
| | | * Write debug info from Crypt_GPG to logs/enigma |
| | | */ |
| | | public function debug($line) |
| | | { |
| | | rcube::write_log('enigma', 'GPG: ' . $line); |
| | | } |
| | | } |