Skip to content

Commit 42a4b26

Browse files
committed
Merge branch 'openpgp-certificate-refactor' into 'main'
Openpgp certificate refactor See merge request root/bc-java!99
2 parents 32dab66 + 800e5f1 commit 42a4b26

16 files changed

+132
-95
lines changed

pg/src/main/java/org/bouncycastle/bcpg/ArmoredOutputStream.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ public Builder addSplitMultilineComment(String comment)
639639
line = line.substring(availableCommentCharsPerLine).trim();
640640
}
641641

642-
if (!line.isEmpty())
642+
if (line.length() != 0)
643643
{
644644
addComment(line);
645645
}

pg/src/main/java/org/bouncycastle/openpgp/api/AbstractOpenPGPDocumentSignatureGenerator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import java.util.Date;
66
import java.util.Iterator;
77
import java.util.List;
8-
import java.util.Objects;
98
import java.util.function.IntPredicate;
109

1110
import org.bouncycastle.bcpg.sig.PreferredAlgorithms;
@@ -64,7 +63,11 @@ public AbstractOpenPGPDocumentSignatureGenerator(OpenPGPImplementation implement
6463
*/
6564
public T setSigningKeySelector(SubkeySelector signingKeySelector)
6665
{
67-
this.signingKeySelector = Objects.requireNonNull(signingKeySelector);
66+
if (signingKeySelector == null)
67+
{
68+
throw new NullPointerException();
69+
}
70+
this.signingKeySelector = signingKeySelector;
6871
return (T)this;
6972
}
7073

pg/src/main/java/org/bouncycastle/openpgp/api/OpenPGPCertificate.java

Lines changed: 48 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.Map;
1616
import java.util.Set;
1717
import java.util.TreeSet;
18-
import java.util.function.Function;
1918

2019
import org.bouncycastle.bcpg.ArmoredOutputStream;
2120
import org.bouncycastle.bcpg.BCPGInputStream;
@@ -3034,41 +3033,56 @@ public boolean isHardRevocation()
30343033
*/
30353034
public Date getSince()
30363035
{
3037-
// Find most recent chain link
3038-
// return chainLinks.stream()
3039-
// .map(it -> it.signature)
3040-
// .max(Comparator.comparing(OpenPGPComponentSignature::getCreationTime))
3041-
// .map(OpenPGPComponentSignature::getCreationTime)
3042-
// .orElse(null);
3043-
return chainLinks.stream()
3044-
.map(new Function<Link, Object>()
3045-
{
3046-
@Override
3047-
public OpenPGPComponentSignature apply(Link it)
3048-
{
3049-
return it.signature; // Replace lambda: `it -> it.signature`
3050-
}
3051-
3052-
})
3053-
.max(new Comparator<Object>()
3054-
{
3055-
@Override
3056-
public int compare(Object o1, Object o2)
3057-
{
3058-
// Replace method reference: `Comparator.comparing(OpenPGPComponentSignature::getCreationTime)`
3059-
return ((OpenPGPComponentSignature)o1).getCreationTime().compareTo(((OpenPGPComponentSignature)o2).getCreationTime());
3060-
}
3061-
})
3062-
.map(new Function<Object, Date>()
3036+
Date latestDate = null;
3037+
for (Iterator it = chainLinks.iterator(); it.hasNext(); )
3038+
{
3039+
Link link = (Link)it.next();
3040+
OpenPGPComponentSignature signature = link.getSignature();
3041+
Date currentDate = signature.getCreationTime();
3042+
if (latestDate == null || currentDate.after(latestDate))
30633043
{
3064-
@Override
3065-
public Date apply(Object sig)
3066-
{
3067-
return ((OpenPGPComponentSignature)sig).getCreationTime(); // Replace method reference: `OpenPGPComponentSignature::getCreationTime`
3068-
}
3069-
})
3070-
.orElse(null);
3044+
latestDate = currentDate;
3045+
}
3046+
}
3047+
return latestDate;
30713048
}
3049+
// public Date getSince()
3050+
// {
3051+
// // Find most recent chain link
3052+
//// return chainLinks.stream()
3053+
//// .map(it -> it.signature)
3054+
//// .max(Comparator.comparing(OpenPGPComponentSignature::getCreationTime))
3055+
//// .map(OpenPGPComponentSignature::getCreationTime)
3056+
//// .orElse(null);
3057+
// return chainLinks.stream()
3058+
// .map(new Function<Link, Object>()
3059+
// {
3060+
// @Override
3061+
// public OpenPGPComponentSignature apply(Link it)
3062+
// {
3063+
// return it.signature; // Replace lambda: `it -> it.signature`
3064+
// }
3065+
//
3066+
// })
3067+
// .max(new Comparator<Object>()
3068+
// {
3069+
// @Override
3070+
// public int compare(Object o1, Object o2)
3071+
// {
3072+
// // Replace method reference: `Comparator.comparing(OpenPGPComponentSignature::getCreationTime)`
3073+
// return ((OpenPGPComponentSignature)o1).getCreationTime().compareTo(((OpenPGPComponentSignature)o2).getCreationTime());
3074+
// }
3075+
// })
3076+
// .map(new Function<Object, Date>()
3077+
// {
3078+
// @Override
3079+
// public Date apply(Object sig)
3080+
// {
3081+
// return ((OpenPGPComponentSignature)sig).getCreationTime(); // Replace method reference: `OpenPGPComponentSignature::getCreationTime`
3082+
// }
3083+
// })
3084+
// .orElse(null);
3085+
// }
30723086

30733087
/**
30743088
* Return the date until which the chain link is valid.

pg/src/main/java/org/bouncycastle/openpgp/api/OpenPGPKeyEditor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ public OpenPGPKeyEditor addUserId(String userId,
101101
SignatureParameters.Callback signatureCallback)
102102
throws PGPException
103103
{
104-
if (userId == null || userId.trim().isEmpty())
104+
// care needs to run with Java 5
105+
if (userId == null || userId.trim().length() == 0)
105106
{
106107
throw new IllegalArgumentException("User-ID cannot be null or empty.");
107108
}

pg/src/main/java/org/bouncycastle/openpgp/api/OpenPGPKeyGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,8 @@ public WithPrimaryKey addUserId(
379379
SignatureParameters.Callback signatureParameters)
380380
throws PGPException
381381
{
382-
if (userId == null || userId.trim().isEmpty())
382+
// care - needs to run with Java 5.
383+
if (userId == null || userId.trim().length() == 0)
383384
{
384385
throw new IllegalArgumentException("User-ID cannot be null or empty.");
385386
}

pg/src/main/java/org/bouncycastle/openpgp/api/OpenPGPKeyMaterialPool.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import java.util.HashMap;
55
import java.util.Iterator;
66
import java.util.Map;
7-
import java.util.Objects;
87
import java.util.stream.Collectors;
98
import java.util.stream.Stream;
109

@@ -63,7 +62,11 @@ public OpenPGPKeyMaterialPool(Collection<M> items)
6362
*/
6463
public OpenPGPKeyMaterialPool<M> setMissingItemCallback(OpenPGPKeyMaterialProvider<M> callback)
6564
{
66-
this.callback = Objects.requireNonNull(callback);
65+
if (callback == null)
66+
{
67+
throw new NullPointerException();
68+
}
69+
this.callback = callback;
6770
return this;
6871
}
6972

pg/src/main/java/org/bouncycastle/openpgp/api/OpenPGPMessageGenerator.java

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import java.util.HashSet;
99
import java.util.Iterator;
1010
import java.util.List;
11-
import java.util.Objects;
1211
import java.util.Set;
1312

1413
import org.bouncycastle.bcpg.AEADAlgorithmTags;
@@ -571,7 +570,11 @@ public int negotiateCompression(OpenPGPMessageGenerator configuration, OpenPGPPo
571570
*/
572571
public OpenPGPMessageGenerator setPasswordBasedEncryptionNegotiator(OpenPGPEncryptionNegotiator pbeNegotiator)
573572
{
574-
this.passwordBasedEncryptionNegotiator = Objects.requireNonNull(pbeNegotiator);
573+
if (pbeNegotiator == null)
574+
{
575+
throw new NullPointerException();
576+
}
577+
this.passwordBasedEncryptionNegotiator = pbeNegotiator;
575578
return this;
576579
}
577580

@@ -584,7 +587,11 @@ public OpenPGPMessageGenerator setPasswordBasedEncryptionNegotiator(OpenPGPEncry
584587
*/
585588
public OpenPGPMessageGenerator setPublicKeyBasedEncryptionNegotiator(OpenPGPEncryptionNegotiator pkbeNegotiator)
586589
{
587-
this.publicKeyBasedEncryptionNegotiator = Objects.requireNonNull(pkbeNegotiator);
590+
if (pkbeNegotiator == null)
591+
{
592+
throw new NullPointerException();
593+
}
594+
this.publicKeyBasedEncryptionNegotiator = pkbeNegotiator;
588595
return this;
589596
}
590597

@@ -598,7 +605,11 @@ public OpenPGPMessageGenerator setPublicKeyBasedEncryptionNegotiator(OpenPGPEncr
598605
*/
599606
public OpenPGPMessageGenerator setEncryptionKeySelector(SubkeySelector encryptionKeySelector)
600607
{
601-
this.encryptionKeySelector = Objects.requireNonNull(encryptionKeySelector);
608+
if (encryptionKeySelector == null)
609+
{
610+
throw new NullPointerException();
611+
}
612+
this.encryptionKeySelector = encryptionKeySelector;
602613
return this;
603614
}
604615

@@ -612,7 +623,11 @@ public OpenPGPMessageGenerator setEncryptionKeySelector(SubkeySelector encryptio
612623
*/
613624
public OpenPGPMessageGenerator setCompressionNegotiator(CompressionNegotiator compressionNegotiator)
614625
{
615-
this.compressionNegotiator = Objects.requireNonNull(compressionNegotiator);
626+
if (compressionNegotiator == null)
627+
{
628+
throw new NullPointerException();
629+
}
630+
this.compressionNegotiator = compressionNegotiator;
616631
return this;
617632
}
618633

@@ -624,7 +639,11 @@ public OpenPGPMessageGenerator setCompressionNegotiator(CompressionNegotiator co
624639
*/
625640
public OpenPGPMessageGenerator setArmorStreamFactory(ArmoredOutputStreamFactory factory)
626641
{
627-
this.armorStreamFactory = Objects.requireNonNull(factory);
642+
if (factory == null)
643+
{
644+
throw new NullPointerException();
645+
}
646+
this.armorStreamFactory = factory;
628647
return this;
629648
}
630649

pg/src/main/java/org/bouncycastle/openpgp/api/SignatureParameters.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.bouncycastle.openpgp.api;
22

33
import java.util.Date;
4-
import java.util.Objects;
54

65
import org.bouncycastle.openpgp.PGPSignature;
76
import org.bouncycastle.openpgp.PGPSignatureSubpacketGenerator;
@@ -200,8 +199,13 @@ public int getSignatureType()
200199
*/
201200
public SignatureParameters setSignatureCreationTime(Date signatureCreationTime)
202201
{
203-
this.signatureCreationTime = Objects.requireNonNull(signatureCreationTime,
204-
"Signature creation time cannot be null.");
202+
if (signatureCreationTime == null)
203+
{
204+
throw new NullPointerException("Signature creation time cannot be null.");
205+
}
206+
207+
this.signatureCreationTime = signatureCreationTime;
208+
205209
return this;
206210
}
207211

pg/src/main/java/org/bouncycastle/openpgp/operator/bc/BcPGPKeyPairGeneratorProvider.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ public PGPKeyPair generateECDHKeyPair(ASN1ObjectIdentifier curveOID)
142142
{
143143
ECKeyPairGenerator gen = new ECKeyPairGenerator();
144144
gen.init(new ECKeyGenerationParameters(
145-
new ECNamedDomainParameters(curveOID, getNamedCurveByOid(curveOID)),
146-
CryptoServicesRegistrar.getSecureRandom()));
145+
new ECNamedDomainParameters(curveOID, getNamedCurveByOid(curveOID)),
146+
CryptoServicesRegistrar.getSecureRandom()));
147147

148148
AsymmetricCipherKeyPair keyPair = gen.generateKeyPair();
149149
return new BcPGPKeyPair(version, PublicKeyAlgorithmTags.ECDH, keyPair, creationTime);
@@ -155,8 +155,8 @@ public PGPKeyPair generateECDSAKeyPair(ASN1ObjectIdentifier curveOID)
155155
{
156156
ECKeyPairGenerator gen = new ECKeyPairGenerator();
157157
gen.init(new ECKeyGenerationParameters(
158-
new ECNamedDomainParameters(curveOID, getNamedCurveByOid(curveOID)),
159-
CryptoServicesRegistrar.getSecureRandom()));
158+
new ECNamedDomainParameters(curveOID, getNamedCurveByOid(curveOID)),
159+
CryptoServicesRegistrar.getSecureRandom()));
160160

161161
AsymmetricCipherKeyPair keyPair = gen.generateKeyPair();
162162
return new BcPGPKeyPair(version, PublicKeyAlgorithmTags.ECDSA, keyPair, creationTime);

pg/src/main/jdk1.5/org/bouncycastle/openpgp/api/SignatureParameters.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import org.bouncycastle.util.Arrays;
66

77
import java.util.Date;
8-
import java.util.Objects;
98

109
/**
1110
* Parameters for signature generation.
@@ -200,8 +199,11 @@ public int getSignatureType()
200199
*/
201200
public SignatureParameters setSignatureCreationTime(Date signatureCreationTime)
202201
{
203-
this.signatureCreationTime = Objects.requireNonNull(signatureCreationTime,
204-
"Signature creation time cannot be null.");
202+
if (signatureCreationTime == null)
203+
{
204+
throw new NullPointerException("Signature creation time cannot be null.");
205+
}
206+
this.signatureCreationTime = signatureCreationTime;
205207
return this;
206208
}
207209

0 commit comments

Comments
 (0)