Skip to content

Commit

Permalink
Add support for subkey revocation
Browse files Browse the repository at this point in the history
  • Loading branch information
slusarz committed Apr 21, 2015
1 parent 0d62799 commit 819680a
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 1 deletion.
11 changes: 10 additions & 1 deletion framework/Pgp/lib/Horde/Pgp/Element/Key.php
Expand Up @@ -198,7 +198,8 @@ public function getEncryptPackets()
case 0x12:
case 0x18:
/* Verify first. */
if (($topkey !== $p) &&
if (!$p ||
($topkey !== $p) &&
!$this->_verifyKeyData($topkey, $p, $val)) {
continue;
}
Expand Down Expand Up @@ -233,12 +234,20 @@ public function getEncryptPackets()
break;

case 0x20:
/* Key revocation. */
if ($this->_verifyKeyData($topkey, false, $val)) {
$out = array();
$fallback = null;
break 2;
}
break;

case 0x28:
/* Subkey revocation. */
if ($this->_verifyKeyData($topkey, $p, $val)) {
$p = null;
}
break;
}
}
}
Expand Down
4 changes: 4 additions & 0 deletions framework/Pgp/test/Horde/Pgp/KeyTest.php
Expand Up @@ -352,6 +352,10 @@ public function getEncryptPacketsProvider()
array(
$this->_getKey('pgp_public_revoked.txt', 'public'),
0
),
array(
$this->_getKey('pgp_public_revokedsub.txt', 'public'),
0
)
);
}
Expand Down
23 changes: 23 additions & 0 deletions framework/Pgp/test/Horde/Pgp/fixtures/pgp_public_revoked.txt
@@ -0,0 +1,23 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2

mI0EVTSLwgEEANUpMYNJXpS0tTDUS5HrS7PLVu9tyibd4bZ2s3Qw3b9TdYE1owB2
LAkNMu0nZieKnzHUDjkQcHCzs/U4kLQd3fbfeFBaBX8JyNgNKs8k5K3EsffaQMQL
gmyk1OpEYO9gyEyd3U+TNXfb+jWSUuD9cMpI8zkBhtN2E7bJTAml3sWRABEBAAGI
twQgAQgAIQUCVTSMUBodA1Jldm9jYXRpb24gb2YgZW50aXJlIGtleQAKCRCRZM+k
zKaZwK6GA/9Yuk1QGCugW1loVj+tSKrmPI20FPKaKpqADdlHhO8YG4g9+lHMjoD3
PNv0I5K1KB9zH9f4XQjWqaekcsC1tegHgQlbvp4NwRyTlIdSRFu1ADPEWpBLA9Sb
mTpJ+wr5gHrp6fdY7YUK0vF6yac4e3PWzNmVeJ2ZWYWtZc0GWfm5kLQcVGVzdCBV
c2VyIDx0ZXN0QGV4YW1wbGUuY29tPoi3BBMBCAAhBQJVNIvCAhsDBQsJCAcCBhUI
CQoLAgQWAgMBAh4BAheAAAoJEJFkz6TMppnAgasD/2PGeRDA0YwvJURF80wy1L0J
0KTsG0/bRKnaHLJua7ATQVTjbBSfWyLATqDKVuSdKPOthcXJU6oDEcjiAkkcnViM
0fCL2TgNCsYts9J6/dLC/sV0QqdBeqBaVEF7hWvIMCt+fmp3kS2FmMICiTAROUYZ
Rspki0LRLMFMLwHUrm7cuI0EVTSLwgEEAL7hSNuiBnB5BmAZlIz2un+/ykZu/BfF
Ni2B1KXB61/li5sQXlVyDmoqGAEkat7MvcQ1QszYSuFwVhNbLuayZ+uCipYpF/Wk
VIOaWtyzwoiYJ96w35BJBjNjFuHU2YQ7rQZIBxGCZWuvh1APq0TcFvwh+e6RICOh
HjcfDf9TwW4ZABEBAAGInwQYAQgACQUCVTSLwgIbDAAKCRCRZM+kzKaZwKnrBACR
11CrNRenSlQN8BzUKZIZl7SkrfyHnNAJredUDlnxE3MNIF/YGGClYuDili9KUpOU
GyGu03AgrcJk/04f7+ebeoPP2ROaIdt+kX14Gi55rsoMvm5HeTBjzTzFwbg9pPmt
8rVVLj01Ox4E6NpNJqjuVIoUP9gHQCf0RGIE40usrw==
=Ni1C
-----END PGP PUBLIC KEY BLOCK-----
23 changes: 23 additions & 0 deletions framework/Pgp/test/Horde/Pgp/fixtures/pgp_public_revokedsub.txt
@@ -0,0 +1,23 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2

mI0EVTSR4gEEANOVm3if/AvXrKcSqcUx6BcFFrVTW3EGshurGCrok2I2GoEd/ts8
PahvRolL6hmhry68ZIcsJwKCskIkT+RR2M+TR7vNHUUIKgwP2Xcd/Rm07/CLtGos
8i+ztESdww1MZCAbwBtiBw4ifWUro2KRBqctUxzQeFdL1nm5wfOP8/mbABEBAAG0
HFRlc3QgVXNlciA8dGVzdEBleGFtcGxlLmNvbT6ItwQTAQgAIQUCVTSR4gIbAwUL
CQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRDMkOkKTsB3XdbbBADKv2fCFw25pAqv
b1SA6sd0kcFc/mpwoh8fcOdLEjj3EWtokko+hcJeTbw0ujkhSaPN10pvDPl6ne4O
GYhMM+FxiEXmSJ8p/FrvsC7zInu1x8iItKoS9GbfOHOiE7Dd5mT65o9fEyUGknz+
NCg05dsuxl9QI2n4ti9owOazAylV37iNBFU0keIBBADJlKeh5QfONjrLC9mdy08a
9b/y+m96GiLKokXCxFSKt4xdPKnfShjnj3uTr7KwGu/t3zbuecNshiQxSCG+J158
m38oUu4endBO9yT25ksIhgVZxItQLDTVsqu+81OylcBDHn0lsrTsvWduLI+eoX2A
7mIYntMYxbOWq0skXNtCIwARAQABiLMEKAEIAB0FAlU0kjMWHQNSZXZvY2F0aW9u
IG9mIHN1YmtleQAKCRDMkOkKTsB3XRhLA/4v0GBkg5RqBbsjz3thHYT94wOODPz+
RiZkxNSlMkAiZ3Vgl1b4443AVqhvnVBd/Z+ERQ2W21uORX8U2+7kv6JVxsHbpEIG
QGkf2v7PkZCXf6fsmFkpAvxVY15G6i0BI5WEeczbGBF5MpNjPcwCcTj2jeEqZyWH
AGjO2karqqtgaYifBBgBCAAJBQJVNJHiAhsMAAoJEMyQ6QpOwHddxXoD/2ACeXvU
cfTIhwVHoaDryRelA2vI20JWM0EUoS4cCEjE/o2P0y8+PX9vvlZcerQOHcc5dD/N
pjuZo1V31BYO+Y8Mzl26i6ZF9XaEG7N1C4ygj8YTbVHh1cWHRmILEN6BkPd1oUDf
A9hqWZX/bFPDVUaNwj0Y2JPdrWLRgyiemLA/
=gVhl
-----END PGP PUBLIC KEY BLOCK-----

0 comments on commit 819680a

Please sign in to comment.