mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-12-01 16:52:08 +01:00
Add RevokeUserIdsTest
This commit is contained in:
parent
a0e9c1f555
commit
d0ef8581e8
2 changed files with 34 additions and 0 deletions
|
@ -7,6 +7,8 @@ SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
## 1.0.0-rc9-SNAPSHOT
|
## 1.0.0-rc9-SNAPSHOT
|
||||||
- When key has both direct-key sig + primary user-id sig: resolve expiration date to earliest expiration
|
- When key has both direct-key sig + primary user-id sig: resolve expiration date to earliest expiration
|
||||||
|
- Add `SecretKeyRingEditor.removeUserId()` convenience methods that do soft-revoke the user-id.
|
||||||
|
- Add `SelectUserId.byEmail()` which also matches the plain email address
|
||||||
|
|
||||||
## 1.0.0-rc8
|
## 1.0.0-rc8
|
||||||
- `KeyRingInfo.getPrimaryUserId()`: return first user-id when no primary user-id is found
|
- `KeyRingInfo.getPrimaryUserId()`: return first user-id when no primary user-id is found
|
||||||
|
|
|
@ -14,6 +14,7 @@ import java.util.NoSuchElementException;
|
||||||
|
|
||||||
import org.bouncycastle.openpgp.PGPException;
|
import org.bouncycastle.openpgp.PGPException;
|
||||||
import org.bouncycastle.openpgp.PGPSecretKeyRing;
|
import org.bouncycastle.openpgp.PGPSecretKeyRing;
|
||||||
|
import org.bouncycastle.openpgp.PGPSignature;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.pgpainless.PGPainless;
|
import org.pgpainless.PGPainless;
|
||||||
import org.pgpainless.key.info.KeyRingInfo;
|
import org.pgpainless.key.info.KeyRingInfo;
|
||||||
|
@ -54,6 +55,37 @@ public class RevokeUserIdsTest {
|
||||||
assertFalse(info.isUserIdValid("Alice <alice@example.org>"));
|
assertFalse(info.isUserIdValid("Alice <alice@example.org>"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void removeUserId() throws PGPException, InvalidAlgorithmParameterException, NoSuchAlgorithmException {
|
||||||
|
PGPSecretKeyRing secretKeys = PGPainless.generateKeyRing()
|
||||||
|
.modernKeyRing("Alice <alice@pgpainless.org>", null);
|
||||||
|
SecretKeyRingProtector protector = SecretKeyRingProtector.unprotectedKeys();
|
||||||
|
|
||||||
|
secretKeys = PGPainless.modifyKeyRing(secretKeys)
|
||||||
|
.addUserId("Allice <alice@example.org>", protector)
|
||||||
|
.addUserId("Alice <alice@example.org>", protector)
|
||||||
|
.done();
|
||||||
|
|
||||||
|
KeyRingInfo info = PGPainless.inspectKeyRing(secretKeys);
|
||||||
|
assertTrue(info.isUserIdValid("Alice <alice@pgpainless.org>"));
|
||||||
|
assertTrue(info.isUserIdValid("Allice <alice@example.org>"));
|
||||||
|
assertTrue(info.isUserIdValid("Alice <alice@example.org>"));
|
||||||
|
|
||||||
|
secretKeys = PGPainless.modifyKeyRing(secretKeys)
|
||||||
|
.removeUserId("Allice <alice@example.org>", protector)
|
||||||
|
.done();
|
||||||
|
|
||||||
|
info = PGPainless.inspectKeyRing(secretKeys);
|
||||||
|
assertTrue(info.isUserIdValid("Alice <alice@pgpainless.org>"));
|
||||||
|
assertFalse(info.isUserIdValid("Allice <alice@example.org>"));
|
||||||
|
assertTrue(info.isUserIdValid("Alice <alice@example.org>"));
|
||||||
|
|
||||||
|
PGPSignature revocation = info.getUserIdRevocation("Allice <alice@example.org>");
|
||||||
|
|
||||||
|
assertFalse(RevocationAttributes.Reason.isHardRevocation(
|
||||||
|
revocation.getHashedSubPackets().getRevocationReason().getRevocationReason()));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void emptySelectionYieldsNoSuchElementException() throws PGPException, InvalidAlgorithmParameterException, NoSuchAlgorithmException {
|
public void emptySelectionYieldsNoSuchElementException() throws PGPException, InvalidAlgorithmParameterException, NoSuchAlgorithmException {
|
||||||
PGPSecretKeyRing secretKeys = PGPainless.generateKeyRing()
|
PGPSecretKeyRing secretKeys = PGPainless.generateKeyRing()
|
||||||
|
|
Loading…
Reference in a new issue