Key generation: Set default expiration periof of 5 years

Can be changed by calling 'keyRingBuilder.setExpirationDate(null);'
This commit is contained in:
Paul Schaub 2023-06-01 23:43:41 +02:00
parent be5562d273
commit 528591f906
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
2 changed files with 12 additions and 5 deletions

View File

@ -54,6 +54,8 @@ import org.pgpainless.util.Passphrase;
public class KeyRingBuilder implements KeyRingBuilderInterface<KeyRingBuilder> {
private static final long YEAR_IN_SECONDS = 1000L * 60 * 60 * 24 * 365;
@SuppressWarnings("CharsetObjectCanBeUsed")
private final Charset UTF8 = Charset.forName("UTF-8");
@ -61,7 +63,7 @@ public class KeyRingBuilder implements KeyRingBuilderInterface<KeyRingBuilder> {
private final List<KeySpec> subkeySpecs = new ArrayList<>();
private final Map<String, SelfSignatureSubpackets.Callback> userIds = new LinkedHashMap<>();
private Passphrase passphrase = Passphrase.emptyPassphrase();
private Date expirationDate = null;
private Date expirationDate = new Date(new Date().getTime() + YEAR_IN_SECONDS * 5); // Expiration in 5 yeras
@Override
public KeyRingBuilder setPrimaryKey(@Nonnull KeySpec keySpec) {
@ -97,7 +99,13 @@ public class KeyRingBuilder implements KeyRingBuilderInterface<KeyRingBuilder> {
}
@Override
public KeyRingBuilder setExpirationDate(@Nonnull Date expirationDate) {
public KeyRingBuilder setExpirationDate(@Nullable Date expirationDate) {
if (expirationDate == null) {
// No expiration
this.expirationDate = null;
return this;
}
Date now = new Date();
if (now.after(expirationDate)) {
throw new IllegalArgumentException("Expiration date must be in the future.");

View File

@ -5,7 +5,6 @@
package org.pgpainless.key.modification;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@ -38,7 +37,7 @@ public class OldSignatureSubpacketsArePreservedOnNewSigTest {
assertNotNull(oldSignature);
PGPSignatureSubpacketVector oldPackets = oldSignature.getHashedSubPackets();
assertEquals(0, oldPackets.getKeyExpirationTime());
long oldExpiration = oldPackets.getKeyExpirationTime();
Date now = new Date();
Date t1 = new Date(now.getTime() + millisInHour);
@ -51,7 +50,7 @@ public class OldSignatureSubpacketsArePreservedOnNewSigTest {
assertNotNull(newSignature);
PGPSignatureSubpacketVector newPackets = newSignature.getHashedSubPackets();
assertNotEquals(0, newPackets.getKeyExpirationTime());
assertNotEquals(oldExpiration, newPackets.getKeyExpirationTime());
assertArrayEquals(oldPackets.getPreferredHashAlgorithms(), newPackets.getPreferredHashAlgorithms());
}