diff --git a/CHANGELOG b/CHANGELOG index 680b75201b6..eb3fcfc8d93 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -92,6 +92,7 @@ CHANGELOG Roundcube Webmail - Fix various issues when downloading files with names containing non-ascii chars, use RFC 2231 (#5772) - Fix PHP warnings on dummy QUOTA responses in Courier-IMAP 4.17.1 (#6374) - Fix so fallback from BINARY to BODY FETCH is used also on [PARSE] errors in dovecot 2.3 (#6383) +- Enigma: Fix deleting keys with authentication subkeys (#6381) RELEASE 1.3.7 ------------- diff --git a/plugins/enigma/lib/enigma_driver_gnupg.php b/plugins/enigma/lib/enigma_driver_gnupg.php index 74e206c53b9..5e02297fbe4 100644 --- a/plugins/enigma/lib/enigma_driver_gnupg.php +++ b/plugins/enigma/lib/enigma_driver_gnupg.php @@ -388,13 +388,10 @@ public function delete_key($keyid) } // need to delete private key first else if ($code == enigma_error::DELKEY) { - $key = $this->get_key($keyid); - for ($i = count($key->subkeys) - 1; $i >= 0; $i--) { - $type = ($key->subkeys[$i]->usage & enigma_key::CAN_ENCRYPT) ? 'priv' : 'pub'; - $result = $this->{'delete_' . $type . 'key'}($key->subkeys[$i]->id); - if ($result !== true) { - break; - } + $result = $this->delete_privkey($keyid); + + if ($result === true) { + $result = $this->delete_pubkey($keyid); } } }