diff --git a/pgpainless-core/src/main/java/org/pgpainless/key/info/KeyRingInfo.java b/pgpainless-core/src/main/java/org/pgpainless/key/info/KeyRingInfo.java index 8353676d..77277622 100644 --- a/pgpainless-core/src/main/java/org/pgpainless/key/info/KeyRingInfo.java +++ b/pgpainless-core/src/main/java/org/pgpainless/key/info/KeyRingInfo.java @@ -118,6 +118,26 @@ public class KeyRingInfo { this.revocationState = findRevocationState(); } + /** + * Return the underlying {@link PGPKeyRing}. + * @return keys + */ + public PGPKeyRing getKeys() { + return keys; + } + + public List getValidSubkeys() { + List subkeys = new ArrayList<>(); + Iterator iterator = getKeys().getPublicKeys(); + while (iterator.hasNext()) { + PGPPublicKey key = iterator.next(); + if (isKeyValidlyBound(key.getKeyID())) { + subkeys.add(key); + } + } + return subkeys; + } + @Nonnull private RevocationState findRevocationState() { PGPSignature revocation = signatures.primaryKeyRevocation;