diff --git a/pgpainless-core/src/main/java/org/pgpainless/PGPainless.java b/pgpainless-core/src/main/java/org/pgpainless/PGPainless.java index 46dd35c2..827085ce 100644 --- a/pgpainless-core/src/main/java/org/pgpainless/PGPainless.java +++ b/pgpainless-core/src/main/java/org/pgpainless/PGPainless.java @@ -8,6 +8,7 @@ import java.io.IOException; import java.util.Date; import javax.annotation.Nonnull; +import org.bouncycastle.openpgp.PGPException; import org.bouncycastle.openpgp.PGPKeyRing; import org.bouncycastle.openpgp.PGPPublicKeyRing; import org.bouncycastle.openpgp.PGPSecretKeyRing; @@ -66,6 +67,21 @@ public final class PGPainless { return KeyRingUtils.publicKeyRingFrom(secretKey); } + /** + * Merge two copies of the same certificate (e.g. an old copy, and one retrieved from a key server) together. + * + * @param originalCopy local, older copy of the cert + * @param updatedCopy updated, newer copy of the cert + * @return merged certificate + * @throws PGPException in case of an error + */ + public static PGPPublicKeyRing mergeCertificate( + @Nonnull PGPPublicKeyRing originalCopy, + @Nonnull PGPPublicKeyRing updatedCopy) + throws PGPException { + return PGPPublicKeyRing.join(originalCopy, updatedCopy); + } + /** * Wrap a key or certificate in ASCII armor. *