mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-11-26 22:32:07 +01:00
Add user-id revocation example
This commit is contained in:
parent
f6ffc4c28d
commit
fc14a86d9c
1 changed files with 31 additions and 1 deletions
|
@ -45,6 +45,10 @@ import org.pgpainless.key.protection.UnlockSecretKey;
|
||||||
import org.pgpainless.util.Passphrase;
|
import org.pgpainless.util.Passphrase;
|
||||||
import org.pgpainless.util.TestUtils;
|
import org.pgpainless.util.TestUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PGPainless offers a simple API to modify keys by adding and replacing signatures and/or subkeys.
|
||||||
|
* The main entry point to this API is {@link PGPainless#modifyKeyRing(PGPSecretKeyRing)}.
|
||||||
|
*/
|
||||||
public class ModifyKeys {
|
public class ModifyKeys {
|
||||||
|
|
||||||
private final String userId = "alice@pgpainless.org";
|
private final String userId = "alice@pgpainless.org";
|
||||||
|
@ -191,12 +195,17 @@ public class ModifyKeys {
|
||||||
assertEquals(TestUtils.formatUTCDate(expirationDate), TestUtils.formatUTCDate(info.getExpirationDateForUse(KeyFlag.SIGN_DATA)));
|
assertEquals(TestUtils.formatUTCDate(expirationDate), TestUtils.formatUTCDate(info.getExpirationDateForUse(KeyFlag.SIGN_DATA)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This example demonstrates how to set an expiration date for single subkeys.
|
||||||
|
*
|
||||||
|
* @throws PGPException
|
||||||
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void setSubkeyExpirationDate() throws PGPException {
|
public void setSubkeyExpirationDate() throws PGPException {
|
||||||
Date expirationDate = TestUtils.getUTCDate("2032-01-13 22:30:01 UTC");
|
Date expirationDate = TestUtils.getUTCDate("2032-01-13 22:30:01 UTC");
|
||||||
|
|
||||||
SecretKeyRingProtector protector = SecretKeyRingProtector
|
SecretKeyRingProtector protector = SecretKeyRingProtector
|
||||||
.unlockAllKeysWith(Passphrase.fromPassword(originalPassphrase), secretKey);
|
.unlockAllKeysWith(Passphrase.fromPassword(originalPassphrase), secretKey);
|
||||||
|
|
||||||
secretKey = PGPainless.modifyKeyRing(secretKey)
|
secretKey = PGPainless.modifyKeyRing(secretKey)
|
||||||
.setExpirationDate(
|
.setExpirationDate(
|
||||||
new OpenPgpV4Fingerprint(secretKey.getPublicKey(encryptionSubkeyId)),
|
new OpenPgpV4Fingerprint(secretKey.getPublicKey(encryptionSubkeyId)),
|
||||||
|
@ -211,4 +220,25 @@ public class ModifyKeys {
|
||||||
assertNull(info.getExpirationDateForUse(KeyFlag.SIGN_DATA));
|
assertNull(info.getExpirationDateForUse(KeyFlag.SIGN_DATA));
|
||||||
assertEquals(TestUtils.formatUTCDate(expirationDate), TestUtils.formatUTCDate(info.getExpirationDateForUse(KeyFlag.ENCRYPT_COMMS)));
|
assertEquals(TestUtils.formatUTCDate(expirationDate), TestUtils.formatUTCDate(info.getExpirationDateForUse(KeyFlag.ENCRYPT_COMMS)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This example demonstrates how to revoke a user-id on a key.
|
||||||
|
*
|
||||||
|
* @throws PGPException
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void revokeUserId() throws PGPException {
|
||||||
|
secretKey = PGPainless.modifyKeyRing(secretKey)
|
||||||
|
.addUserId("alcie@pgpainless.org", SecretKeyRingProtector.unprotectedKeys())
|
||||||
|
.done();
|
||||||
|
// Initially the user-id is valid
|
||||||
|
assertTrue(PGPainless.inspectKeyRing(secretKey).isUserIdValid("alcie@pgpainless.org"));
|
||||||
|
|
||||||
|
// Revoke the second user-id
|
||||||
|
secretKey = PGPainless.modifyKeyRing(secretKey)
|
||||||
|
.revokeUserId("alcie@pgpainless.org", SecretKeyRingProtector.unprotectedKeys())
|
||||||
|
.done();
|
||||||
|
// Now the user-id is no longer valid
|
||||||
|
assertFalse(PGPainless.inspectKeyRing(secretKey).isUserIdValid("alcie@pgpainless.org"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue