Drop support for PEAR Crypt_GPG as it is lacking features we want in #89

This commit is contained in:
the-djmaze 2022-01-24 17:08:21 +01:00
parent 998a1c6cc8
commit f26c35c411

View file

@ -9,14 +9,11 @@ class GnuPG
// Instance of gnupg pecl extension // Instance of gnupg pecl extension
$GnuPG, $GnuPG,
// Instance of \SnappyMail\PGP\GPG // Instance of \SnappyMail\PGP\GPG
$GPG, $GPG;
// Instance of PEAR Crypt_GPG
$Crypt_GPG;
public static function isSupported() : bool public static function isSupported() : bool
{ {
return \class_exists('gnupg') return \class_exists('gnupg')
|| \stream_resolve_include_path('Crypt/GPG.php')
|| \SnappyMail\PGP\GPG::isSupported(); || \SnappyMail\PGP\GPG::isSupported();
} }
@ -43,20 +40,6 @@ class GnuPG
} else if (\SnappyMail\PGP\GPG::isSupported()) { } else if (\SnappyMail\PGP\GPG::isSupported()) {
$self = new self; $self = new self;
$self->GPG = new \SnappyMail\PGP\GPG($homedir); $self->GPG = new \SnappyMail\PGP\GPG($homedir);
} else {
/**
* $binary = trim(`which gpg`) ?: trim(`which gpg2`);
* \is_executable($binary)
*/
include_once 'Crypt/GPG.php';
if (\class_exists('Crypt_GPG')) {
$self = new self;
$self->Crypt_GPG = new \Crypt_GPG([
// 'debug' => true,
// 'binary' => $binary,
'homedir' => $homedir
]);
}
} }
if ($self) { if ($self) {
$self->homedir = $homedir; $self->homedir = $homedir;
@ -76,10 +59,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->adddecryptkey($fingerprint, $passphrase); return $this->GPG->adddecryptkey($fingerprint, $passphrase);
} }
if ($this->Crypt_GPG) {
$this->Crypt_GPG->addDecryptKey($fingerprint, $passphrase);
return true;
}
return false; return false;
} }
@ -94,10 +73,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->addencryptkey($fingerprint); return $this->GPG->addencryptkey($fingerprint);
} }
if ($this->Crypt_GPG) {
$this->Crypt_GPG->addEncryptKey($fingerprint);
return true;
}
return false; return false;
} }
@ -112,10 +87,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->addsignkey($fingerprint, $passphrase); return $this->GPG->addsignkey($fingerprint, $passphrase);
} }
if ($this->Crypt_GPG) {
$this->Crypt_GPG->addSignKey($fingerprint, $passphrase);
return true;
}
return false; return false;
} }
@ -130,10 +101,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->cleardecryptkeys(); return $this->GPG->cleardecryptkeys();
} }
if ($this->Crypt_GPG) {
$this->Crypt_GPG->clearDecryptKeys();
return true;
}
return false; return false;
} }
@ -148,10 +115,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->clearencryptkeys(); return $this->GPG->clearencryptkeys();
} }
if ($this->Crypt_GPG) {
$this->Crypt_GPG->clearEncryptKeys();
return true;
}
return false; return false;
} }
@ -166,10 +129,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->clearsignkeys(); return $this->GPG->clearsignkeys();
} }
if ($this->Crypt_GPG) {
$this->Crypt_GPG->clearSignKeys();
return true;
}
return false; return false;
} }
@ -184,9 +143,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->decrypt($text); return $this->GPG->decrypt($text);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->decrypt($encryptedData);
}
return false; return false;
} }
@ -201,9 +157,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->decryptFile($filename); return $this->GPG->decryptFile($filename);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->decryptFile($filename, $decryptedFile = null);
}
return false; return false;
} }
@ -218,9 +171,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->decryptverify($text, $plaintext); return $this->GPG->decryptverify($text, $plaintext);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->decryptAndVerify($text, $ignoreVerifyErrors = false);
}
return false; return false;
} }
@ -235,9 +185,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->decryptverifyFile($filename, $plaintext); return $this->GPG->decryptverifyFile($filename, $plaintext);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->decryptAndVerifyFile($filename, $decryptedFile = null, $ignoreVerifyErrors = false);
}
return false; return false;
} }
@ -252,9 +199,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->encrypt($plaintext); return $this->GPG->encrypt($plaintext);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->encrypt($plaintext);
}
return false; return false;
} }
@ -269,9 +213,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->encryptFile($filename); return $this->GPG->encryptFile($filename);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->encryptFile($filename, $encryptedFile = null);
}
return false; return false;
} }
@ -286,9 +227,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->encryptsign($plaintext); return $this->GPG->encryptsign($plaintext);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->encryptAndSign($plaintext);
}
return false; return false;
} }
@ -303,9 +241,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->encryptsignFile($filename); return $this->GPG->encryptsignFile($filename);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->encryptAndSignFile($filename, $signedFile = null);
}
return false; return false;
} }
@ -320,11 +255,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->export($fingerprint); return $this->GPG->export($fingerprint);
} }
if ($this->Crypt_GPG) {
$this->Crypt_GPG->exportPrivateKey($fingerprint, $armor = true);
$this->Crypt_GPG->exportPublicKey($fingerprint, $armor = true);
return true;
}
return false; return false;
} }
@ -339,14 +269,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->getengineinfo(); return $this->GPG->getengineinfo();
} }
if ($this->Crypt_GPG) {
return [
'protocol' => null,
'file_name' => null, // $this->Crypt_GPG->binary
'home_dir' => $this->homedir,
'version' => $this->Crypt_GPG->getVersion()
];
}
return false; return false;
} }
@ -361,9 +283,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->geterror(); return $this->GPG->geterror();
} }
if ($this->Crypt_GPG) {
return true;
}
return false; return false;
} }
@ -378,9 +297,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->geterrorinfo(); return $this->GPG->geterrorinfo();
} }
if ($this->Crypt_GPG) {
return true;
}
return false; return false;
} }
@ -395,9 +311,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->getprotocol(); return $this->GPG->getprotocol();
} }
if ($this->Crypt_GPG) {
return true;
}
return false; return false;
} }
@ -426,9 +339,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->import($keydata); return $this->GPG->import($keydata);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->importKey($keydata);
}
return false; return false;
} }
@ -443,9 +353,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->importFile($filename); return $this->GPG->importFile($filename);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->importKeyFile($filename);
}
return false; return false;
} }
@ -516,8 +423,6 @@ class GnuPG
} }
} }
} }
else if ($this->Crypt_GPG) {
}
return $keys; return $keys;
} }
@ -533,10 +438,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->setarmor($armor ? 1 : 0); return $this->GPG->setarmor($armor ? 1 : 0);
} }
if ($this->Crypt_GPG) {
//$armor ? \Crypt_GPG::ARMOR_ASCII : \Crypt_GPG::ARMOR_
return true;
}
return false; return false;
} }
@ -553,8 +454,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
$this->GPG->seterrormode($errormode); $this->GPG->seterrormode($errormode);
} }
if ($this->Crypt_GPG) {
}
} }
/** /**
@ -570,9 +469,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->setsignmode($signmode); return $this->GPG->setsignmode($signmode);
} }
if ($this->Crypt_GPG) {
return true;
}
return false; return false;
} }
@ -587,9 +483,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->sign($plaintext); return $this->GPG->sign($plaintext);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->sign($data, $mode = self::SIGN_MODE_NORMAL);
}
return false; return false;
} }
@ -604,9 +497,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->signFile($filename); return $this->GPG->signFile($filename);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->signFile($filename, $signedFile = null, $mode = self::SIGN_MODE_NORMAL);
}
return false; return false;
} }
@ -621,9 +511,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->verify($signed_text, $signature, $plaintext); return $this->GPG->verify($signed_text, $signature, $plaintext);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->verify($signed_text, $signature);
}
return false; return false;
} }
@ -638,9 +525,6 @@ class GnuPG
if ($this->GPG) { if ($this->GPG) {
return $this->GPG->verifyFile($filename, $signature, $plaintext); return $this->GPG->verifyFile($filename, $signature, $plaintext);
} }
if ($this->Crypt_GPG) {
return $this->Crypt_GPG->verifyFile($filename, $signature);
}
return false; return false;
} }
@ -657,17 +541,4 @@ class GnuPG
} }
return false; return false;
} }
/*
$this->Crypt_GPG->deletePublicKey($keyId);
$this->Crypt_GPG->deletePrivateKey($keyId);
$this->Crypt_GPG->getKeys($keyId = '');
$this->Crypt_GPG->getFingerprint($keyId, $format = self::FORMAT_NONE);
$this->Crypt_GPG->getLastSignatureInfo();
$this->Crypt_GPG->addPassphrase($key, $passphrase);
$this->Crypt_GPG->clearPassphrases();
$this->Crypt_GPG->hasEncryptKeys();
$this->Crypt_GPG->hasSignKeys();
$this->Crypt_GPG->getWarnings();
*/
} }