diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/package-info.java b/pgpainless-core/src/main/java/org/pgpainless/util/package-info.java deleted file mode 100644 index 6c525229..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -/** - * Utility classes. - */ -package org.pgpainless.util; diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/KeyRingSelectionStrategy.java b/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/KeyRingSelectionStrategy.java deleted file mode 100644 index 26180214..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/KeyRingSelectionStrategy.java +++ /dev/null @@ -1,49 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring; - -import java.util.Set; - -import org.pgpainless.util.MultiMap; - -/** - * Filter for selecting public / secret key rings based on identifiers (e.g. user-ids). - * - * @param Type of {@link org.bouncycastle.openpgp.PGPKeyRing} ({@link org.bouncycastle.openpgp.PGPSecretKeyRing} - * or {@link org.bouncycastle.openpgp.PGPPublicKeyRing}). - * @param Type of key ring collection (e.g. {@link org.bouncycastle.openpgp.PGPSecretKeyRingCollection} - * or {@link org.bouncycastle.openpgp.PGPPublicKeyRingCollection}). - * @param Type of key identifier - */ -public interface KeyRingSelectionStrategy { - - /** - * Return true, if the filter accepts the given
keyRing
based on the given
identifier
. - * - * @param identifier identifier - * @param keyRing key ring - * @return acceptance - */ - boolean accept(O identifier, R keyRing); - - /** - * Iterate of the given
keyRingCollection
and return a {@link Set} of all acceptable - * keyRings in the collection, based on the given
identifier
. - * - * @param identifier identifier - * @param keyRingCollection collection - * @return set of acceptable key rings - */ - Set selectKeyRingsFromCollection(O identifier, C keyRingCollection); - - /** - * Iterate over all keyRings in the given {@link MultiMap} of keyRingCollections and return a new {@link MultiMap} - * which for every identifier (key of the map) contains all acceptable keyRings based on that identifier. - * - * @param keyRingCollections MultiMap of identifiers and keyRingCollections. - * @return MultiMap of identifiers and acceptable keyRings. - */ - MultiMap selectKeyRingsFromCollections(MultiMap keyRingCollections); -} diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/PublicKeyRingSelectionStrategy.java b/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/PublicKeyRingSelectionStrategy.java deleted file mode 100644 index 7dbf7c93..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/PublicKeyRingSelectionStrategy.java +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring; - -import javax.annotation.Nonnull; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; - -import org.bouncycastle.openpgp.PGPPublicKeyRing; -import org.bouncycastle.openpgp.PGPPublicKeyRingCollection; -import org.pgpainless.util.MultiMap; - -/** - * Abstract {@link KeyRingSelectionStrategy} for {@link PGPPublicKeyRing PGPPublicKeyRings}. - * - * @param Type of identifier - */ -public abstract class PublicKeyRingSelectionStrategy implements KeyRingSelectionStrategy { - - @Override - public Set selectKeyRingsFromCollection(@Nonnull O identifier, @Nonnull PGPPublicKeyRingCollection keyRingCollection) { - Set accepted = new HashSet<>(); - for (Iterator i = keyRingCollection.getKeyRings(); i.hasNext(); ) { - PGPPublicKeyRing ring = i.next(); - if (accept(identifier, ring)) accepted.add(ring); - } - return accepted; - } - - @Override - public MultiMap selectKeyRingsFromCollections(@Nonnull MultiMap keyRingCollections) { - MultiMap keyRings = new MultiMap<>(); - for (Map.Entry> entry : keyRingCollections.entrySet()) { - for (PGPPublicKeyRingCollection collection : entry.getValue()) { - keyRings.plus(entry.getKey(), selectKeyRingsFromCollection(entry.getKey(), collection)); - } - } - return keyRings; - } -} diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/SecretKeyRingSelectionStrategy.java b/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/SecretKeyRingSelectionStrategy.java deleted file mode 100644 index 9e57b575..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/SecretKeyRingSelectionStrategy.java +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import javax.annotation.Nonnull; - -import org.bouncycastle.openpgp.PGPSecretKeyRing; -import org.bouncycastle.openpgp.PGPSecretKeyRingCollection; -import org.pgpainless.util.MultiMap; - -/** - * Abstract {@link KeyRingSelectionStrategy} for {@link PGPSecretKeyRing PGPSecretKeyRings}. - * - * @param Type of identifier - */ -public abstract class SecretKeyRingSelectionStrategy implements KeyRingSelectionStrategy { - @Override - public Set selectKeyRingsFromCollection(O identifier, @Nonnull PGPSecretKeyRingCollection keyRingCollection) { - Set accepted = new HashSet<>(); - for (Iterator i = keyRingCollection.getKeyRings(); i.hasNext(); ) { - PGPSecretKeyRing ring = i.next(); - if (accept(identifier, ring)) accepted.add(ring); - } - return accepted; - } - - @Override - public MultiMap selectKeyRingsFromCollections(@Nonnull MultiMap keyRingCollections) { - MultiMap keyRings = new MultiMap<>(); - for (Map.Entry> entry : keyRingCollections.entrySet()) { - for (PGPSecretKeyRingCollection collection : entry.getValue()) { - keyRings.plus(entry.getKey(), selectKeyRingsFromCollection(entry.getKey(), collection)); - } - } - return keyRings; - } -} diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/ExactUserId.java b/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/ExactUserId.java deleted file mode 100644 index ffda8867..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/ExactUserId.java +++ /dev/null @@ -1,56 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring.impl; - -import java.util.List; - -import org.bouncycastle.openpgp.PGPPublicKeyRing; -import org.bouncycastle.openpgp.PGPSecretKeyRing; -import org.pgpainless.key.util.KeyRingUtils; -import org.pgpainless.util.selection.keyring.PublicKeyRingSelectionStrategy; -import org.pgpainless.util.selection.keyring.SecretKeyRingSelectionStrategy; - -/** - * Implementations of {@link org.pgpainless.util.selection.keyring.KeyRingSelectionStrategy} which select key rings - * based on the exact user-id. - */ -public final class ExactUserId { - - private ExactUserId() { - - } - - /** - * {@link PublicKeyRingSelectionStrategy} which accepts {@link PGPPublicKeyRing PGPPublicKeyRings} if those - * have a user-id which exactly matches the given
identifier
. - */ - public static class PubRingSelectionStrategy extends PublicKeyRingSelectionStrategy { - - @Override - public boolean accept(String identifier, PGPPublicKeyRing keyRing) { - List userIds = KeyRingUtils.getUserIdsIgnoringInvalidUTF8(keyRing.getPublicKey()); - for (String userId : userIds) { - if (userId.equals(identifier)) return true; - } - return false; - } - } - - /** - * {@link SecretKeyRingSelectionStrategy} which accepts {@link PGPSecretKeyRing PGPSecretKeyRings} if those - * have a user-id which exactly matches the given
identifier
. - */ - public static class SecRingSelectionStrategy extends SecretKeyRingSelectionStrategy { - - @Override - public boolean accept(String identifier, PGPSecretKeyRing keyRing) { - List userIds = KeyRingUtils.getUserIdsIgnoringInvalidUTF8(keyRing.getPublicKey()); - for (String userId : userIds) { - if (userId.equals(identifier)) return true; - } - return false; - } - } -} diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/Whitelist.java b/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/Whitelist.java deleted file mode 100644 index 934f5577..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/Whitelist.java +++ /dev/null @@ -1,92 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring.impl; - -import java.util.Map; -import java.util.Set; - -import org.bouncycastle.openpgp.PGPPublicKeyRing; -import org.bouncycastle.openpgp.PGPSecretKeyRing; -import org.pgpainless.util.selection.keyring.PublicKeyRingSelectionStrategy; -import org.pgpainless.util.selection.keyring.SecretKeyRingSelectionStrategy; -import org.pgpainless.util.MultiMap; - -/** - * Implementations of {@link org.pgpainless.util.selection.keyring.KeyRingSelectionStrategy} which accept PGP KeyRings - * based on a whitelist of acceptable keyIds. - */ -public final class Whitelist { - - private Whitelist() { - - } - - /** - * {@link org.pgpainless.util.selection.keyring.KeyRingSelectionStrategy} which accepts - * {@link PGPPublicKeyRing PGPPublicKeyRings} if the
whitelist
contains their primary key id. - * - * If the whitelist contains 123L for "alice@pgpainless.org", the key with primary key id 123L is - * acceptable for "alice@pgpainless.org". - * - * @param Type of identifier for {@link org.bouncycastle.openpgp.PGPPublicKeyRingCollection PGPPublicKeyRingCollections}. - */ - public static class PubRingSelectionStrategy extends PublicKeyRingSelectionStrategy { - - private final MultiMap whitelist; - - public PubRingSelectionStrategy(MultiMap whitelist) { - this.whitelist = whitelist; - } - - public PubRingSelectionStrategy(Map> whitelist) { - this(new MultiMap<>(whitelist)); - } - - @Override - public boolean accept(O identifier, PGPPublicKeyRing keyRing) { - Set whitelistedKeyIds = whitelist.get(identifier); - - if (whitelistedKeyIds == null) { - return false; - } - - return whitelistedKeyIds.contains(keyRing.getPublicKey().getKeyID()); - } - } - - /** - * {@link org.pgpainless.util.selection.keyring.KeyRingSelectionStrategy} which accepts - * {@link PGPSecretKeyRing PGPSecretKeyRings} if the
whitelist
contains their primary key id. - * - * If the whitelist contains 123L for "alice@pgpainless.org", the key with primary key id 123L is - * acceptable for "alice@pgpainless.org". - * - * @param Type of identifier for {@link org.bouncycastle.openpgp.PGPSecretKeyRingCollection PGPSecretKeyRingCollections}. - */ - public static class SecRingSelectionStrategy extends SecretKeyRingSelectionStrategy { - - private final MultiMap whitelist; - - public SecRingSelectionStrategy(MultiMap whitelist) { - this.whitelist = whitelist; - } - - public SecRingSelectionStrategy(Map> whitelist) { - this(new MultiMap<>(whitelist)); - } - - @Override - public boolean accept(O identifier, PGPSecretKeyRing keyRing) { - Set whitelistedKeyIds = whitelist.get(identifier); - - if (whitelistedKeyIds == null) { - return false; - } - - return whitelistedKeyIds.contains(keyRing.getPublicKey().getKeyID()); - } - - } -} diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/Wildcard.java b/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/Wildcard.java deleted file mode 100644 index d1929028..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/Wildcard.java +++ /dev/null @@ -1,36 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring.impl; - -import org.bouncycastle.openpgp.PGPPublicKeyRing; -import org.bouncycastle.openpgp.PGPSecretKeyRing; -import org.pgpainless.util.selection.keyring.PublicKeyRingSelectionStrategy; -import org.pgpainless.util.selection.keyring.SecretKeyRingSelectionStrategy; - -/** - * Implementations of {@link org.pgpainless.util.selection.keyring.KeyRingSelectionStrategy} which accept all keyRings. - */ -public final class Wildcard { - - private Wildcard() { - - } - - public static class PubRingSelectionStrategy extends PublicKeyRingSelectionStrategy { - - @Override - public boolean accept(O identifier, PGPPublicKeyRing keyRing) { - return true; - } - } - - public static class SecRingSelectionStrategy extends SecretKeyRingSelectionStrategy { - - @Override - public boolean accept(O identifier, PGPSecretKeyRing keyRing) { - return true; - } - } -} diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/XMPP.java b/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/XMPP.java deleted file mode 100644 index edc38006..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/XMPP.java +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring.impl; - -import org.bouncycastle.openpgp.PGPPublicKeyRing; -import org.bouncycastle.openpgp.PGPSecretKeyRing; - -/** - * Implementations of {@link org.pgpainless.util.selection.keyring.KeyRingSelectionStrategy} which accept KeyRings - * containing a given XMPP address of the format "xmpp:alice@pgpainless.org". - */ -public final class XMPP { - - private XMPP() { - - } - - /** - * {@link org.pgpainless.util.selection.keyring.PublicKeyRingSelectionStrategy} which accepts a given - * {@link PGPPublicKeyRing} if its primary key has a user-id that matches the given
jid
. - * - * The argument
jid
can either contain the prefix "xmpp:", or not, the result will be the same. - */ - public static class PubRingSelectionStrategy extends ExactUserId.PubRingSelectionStrategy { - - @Override - public boolean accept(String jid, PGPPublicKeyRing keyRing) { - if (!jid.matches("^xmpp:.+$")) { - jid = "xmpp:" + jid; - } - return super.accept(jid, keyRing); - } - } - - /** - * {@link org.pgpainless.util.selection.keyring.SecretKeyRingSelectionStrategy} which accepts a given - * {@link PGPSecretKeyRing} if its primary key has a user-id that matches the given
jid
. - * - * The argument
jid
can either contain the prefix "xmpp:", or not, the result will be the same. - */ - public static class SecRingSelectionStrategy extends ExactUserId.SecRingSelectionStrategy { - - @Override - public boolean accept(String jid, PGPSecretKeyRing keyRing) { - if (!jid.matches("^xmpp:.+$")) { - jid = "xmpp:" + jid; - } - return super.accept(jid, keyRing); - } - } -} diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/package-info.java b/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/package-info.java deleted file mode 100644 index 9b4bf1a4..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/impl/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -/** - * Implementations of Key Ring Selection Strategies. - */ -package org.pgpainless.util.selection.keyring.impl; diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/package-info.java b/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/package-info.java deleted file mode 100644 index 3c93ce47..00000000 --- a/pgpainless-core/src/main/java/org/pgpainless/util/selection/keyring/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-FileCopyrightText: 2018 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -/** - * Different Key Ring Selection Strategies. - */ -package org.pgpainless.util.selection.keyring; diff --git a/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/KeyRingsFromCollectionTest.java b/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/KeyRingsFromCollectionTest.java deleted file mode 100644 index c7f6d722..00000000 --- a/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/KeyRingsFromCollectionTest.java +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-FileCopyrightText: 2021 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.IOException; -import java.util.Arrays; -import java.util.Collections; -import java.util.Set; - -import org.bouncycastle.openpgp.PGPException; -import org.bouncycastle.openpgp.PGPPublicKeyRing; -import org.bouncycastle.openpgp.PGPPublicKeyRingCollection; -import org.bouncycastle.openpgp.PGPSecretKeyRing; -import org.bouncycastle.openpgp.PGPSecretKeyRingCollection; -import org.junit.jupiter.api.Test; -import org.pgpainless.key.TestKeys; -import org.pgpainless.util.MultiMap; -import org.pgpainless.util.selection.keyring.impl.ExactUserId; - -public class KeyRingsFromCollectionTest { - - @Test - public void selectSecretKeyRingFromSecretKeyRingCollectionTest() throws IOException, PGPException { - PGPSecretKeyRing emil = TestKeys.getEmilSecretKeyRing(); - PGPSecretKeyRing juliet = TestKeys.getJulietSecretKeyRing(); - PGPSecretKeyRingCollection collection = new PGPSecretKeyRingCollection(Arrays.asList(emil, juliet)); - - SecretKeyRingSelectionStrategy strategy = new ExactUserId.SecRingSelectionStrategy(); - Set secretKeyRings = strategy.selectKeyRingsFromCollection(TestKeys.JULIET_UID, collection); - assertEquals(1, secretKeyRings.size()); - assertEquals(juliet.getPublicKey().getKeyID(), secretKeyRings.iterator().next().getPublicKey().getKeyID()); - } - - @Test - public void selectSecretKeyRingMapFromSecretKeyRingCollectionMapTest() throws IOException, PGPException { - PGPSecretKeyRing emil = TestKeys.getEmilSecretKeyRing(); - PGPSecretKeyRing juliet = TestKeys.getJulietSecretKeyRing(); - MultiMap map = new MultiMap<>(); - PGPSecretKeyRingCollection julietCollection = new PGPSecretKeyRingCollection(Arrays.asList(emil, juliet)); - map.put(TestKeys.JULIET_UID, julietCollection); - PGPSecretKeyRingCollection emilCollection = new PGPSecretKeyRingCollection(Collections.singletonList(emil)); - map.put(TestKeys.EMIL_UID, emilCollection); - assertEquals(2, julietCollection.size()); - map.put("invalidId", emilCollection); - - SecretKeyRingSelectionStrategy strategy = new ExactUserId.SecRingSelectionStrategy(); - MultiMap selected = strategy.selectKeyRingsFromCollections(map); - assertEquals(1, selected.get(TestKeys.JULIET_UID).size()); - assertEquals(1, selected.get(TestKeys.EMIL_UID).size()); - assertTrue(selected.get("invalidId").isEmpty()); - } - - @Test - public void selectPublicKeyRingFromPublicKeyRingCollectionTest() throws IOException { - PGPPublicKeyRing emil = TestKeys.getEmilPublicKeyRing(); - PGPPublicKeyRing juliet = TestKeys.getJulietPublicKeyRing(); - PGPPublicKeyRingCollection collection = new PGPPublicKeyRingCollection(Arrays.asList(emil, juliet)); - - PublicKeyRingSelectionStrategy strategy = new ExactUserId.PubRingSelectionStrategy(); - Set publicKeyRings = strategy.selectKeyRingsFromCollection(TestKeys.JULIET_UID, collection); - assertEquals(1, publicKeyRings.size()); - assertEquals(juliet.getPublicKey().getKeyID(), publicKeyRings.iterator().next().getPublicKey().getKeyID()); - } - - @Test - public void selectPublicKeyRingMapFromPublicKeyRingCollectionMapTest() throws IOException { - PGPPublicKeyRing emil = TestKeys.getEmilPublicKeyRing(); - PGPPublicKeyRing juliet = TestKeys.getJulietPublicKeyRing(); - MultiMap map = new MultiMap<>(); - PGPPublicKeyRingCollection julietCollection = new PGPPublicKeyRingCollection(Arrays.asList(emil, juliet)); - map.plus(TestKeys.JULIET_UID, julietCollection); - PGPPublicKeyRingCollection emilCollection = new PGPPublicKeyRingCollection(Collections.singletonList(emil)); - map.plus(TestKeys.EMIL_UID, emilCollection); - assertEquals(2, julietCollection.size()); - map.plus("invalidId", emilCollection); - - PublicKeyRingSelectionStrategy strategy = new ExactUserId.PubRingSelectionStrategy(); - MultiMap selected = strategy.selectKeyRingsFromCollections(map); - assertEquals(1, selected.get(TestKeys.JULIET_UID).size()); - assertEquals(1, selected.get(TestKeys.EMIL_UID).size()); - assertTrue(selected.get("invalidId").isEmpty()); - } -} diff --git a/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/WhitelistKeyRingSelectionStrategyTest.java b/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/WhitelistKeyRingSelectionStrategyTest.java deleted file mode 100644 index 43c19a6c..00000000 --- a/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/WhitelistKeyRingSelectionStrategyTest.java +++ /dev/null @@ -1,52 +0,0 @@ -// SPDX-FileCopyrightText: 2020 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.IOException; -import java.util.Collections; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; - -import org.bouncycastle.openpgp.PGPException; -import org.bouncycastle.openpgp.PGPPublicKeyRing; -import org.bouncycastle.openpgp.PGPSecretKeyRing; -import org.junit.jupiter.api.Test; -import org.pgpainless.key.TestKeys; -import org.pgpainless.util.selection.keyring.impl.Whitelist; - -public class WhitelistKeyRingSelectionStrategyTest { - - @Test - public void testWithPublicKeys() throws IOException { - Map> ids = new ConcurrentHashMap<>(); - ids.put(TestKeys.JULIET_UID, Collections.singleton(TestKeys.JULIET_KEY_ID)); - Whitelist.PubRingSelectionStrategy selectionStrategy = new Whitelist.PubRingSelectionStrategy<>(ids); - - PGPPublicKeyRing julietsKeys = TestKeys.getJulietPublicKeyRing(); - PGPPublicKeyRing romeosKeys = TestKeys.getRomeoPublicKeyRing(); - - assertTrue(selectionStrategy.accept(TestKeys.JULIET_UID, julietsKeys)); - assertFalse(selectionStrategy.accept(TestKeys.JULIET_UID, romeosKeys)); - assertFalse(selectionStrategy.accept(TestKeys.ROMEO_UID, julietsKeys)); - } - - @Test - public void testWithSecretKeys() throws IOException, PGPException { - Map> ids = new ConcurrentHashMap<>(); - ids.put(TestKeys.JULIET_UID, Collections.singleton(TestKeys.JULIET_KEY_ID)); - Whitelist.SecRingSelectionStrategy selectionStrategy = new Whitelist.SecRingSelectionStrategy<>(ids); - - PGPSecretKeyRing julietsKeys = TestKeys.getJulietSecretKeyRing(); - PGPSecretKeyRing romeosKeys = TestKeys.getRomeoSecretKeyRing(); - - assertTrue(selectionStrategy.accept(TestKeys.JULIET_UID, julietsKeys)); - assertFalse(selectionStrategy.accept(TestKeys.JULIET_UID, romeosKeys)); - assertFalse(selectionStrategy.accept(TestKeys.ROMEO_UID, julietsKeys)); - } -} diff --git a/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/WildcardKeyRingSelectionStrategyTest.java b/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/WildcardKeyRingSelectionStrategyTest.java deleted file mode 100644 index 10907eca..00000000 --- a/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/WildcardKeyRingSelectionStrategyTest.java +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-FileCopyrightText: 2020 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.IOException; - -import org.bouncycastle.openpgp.PGPException; -import org.bouncycastle.openpgp.PGPPublicKeyRing; -import org.bouncycastle.openpgp.PGPSecretKeyRing; -import org.junit.jupiter.api.Test; -import org.pgpainless.key.TestKeys; -import org.pgpainless.util.selection.keyring.impl.Wildcard; - -public class WildcardKeyRingSelectionStrategyTest { - - - private static final Wildcard.PubRingSelectionStrategy pubKeySelectionStrategy - = new Wildcard.PubRingSelectionStrategy<>(); - private static final Wildcard.SecRingSelectionStrategy secKeySelectionStrategy - = new Wildcard.SecRingSelectionStrategy<>(); - - @Test - public void testStratAcceptsMatchingUIDsOnPubKey() throws IOException { - String uid = TestKeys.EMIL_UID; - PGPPublicKeyRing key = TestKeys.getEmilPublicKeyRing(); - - assertTrue(pubKeySelectionStrategy.accept(uid, key)); - } - - @Test - public void testStratAcceptsMismatchingUIDsOnPubKey() throws IOException { - String uid = "blabla@bla.bla"; - PGPPublicKeyRing key = TestKeys.getEmilPublicKeyRing(); - - assertTrue(pubKeySelectionStrategy.accept(uid, key)); - } - - @Test - public void testStratAcceptsMatchingUIDsOnSecKey() throws IOException, PGPException { - String uid = TestKeys.EMIL_UID; - PGPSecretKeyRing key = TestKeys.getEmilSecretKeyRing(); - - assertTrue(secKeySelectionStrategy.accept(uid, key)); - } - - @Test - public void testStratAcceptsMismatchingUIDsOnSecKey() throws IOException, PGPException { - String uid = "blabla@bla.bla"; - PGPSecretKeyRing key = TestKeys.getEmilSecretKeyRing(); - - assertTrue(secKeySelectionStrategy.accept(uid, key)); - } -} diff --git a/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/XmppKeyRingSelectionStrategyTest.java b/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/XmppKeyRingSelectionStrategyTest.java deleted file mode 100644 index 2b5f8ebb..00000000 --- a/pgpainless-core/src/test/java/org/pgpainless/util/selection/keyring/XmppKeyRingSelectionStrategyTest.java +++ /dev/null @@ -1,72 +0,0 @@ -// SPDX-FileCopyrightText: 2020 Paul Schaub -// -// SPDX-License-Identifier: Apache-2.0 - -package org.pgpainless.util.selection.keyring; - -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.IOException; - -import org.bouncycastle.openpgp.PGPException; -import org.bouncycastle.openpgp.PGPPublicKeyRing; -import org.bouncycastle.openpgp.PGPSecretKeyRing; -import org.junit.jupiter.api.Test; -import org.pgpainless.key.TestKeys; -import org.pgpainless.util.selection.keyring.impl.XMPP; - -public class XmppKeyRingSelectionStrategyTest { - - private static final XMPP.PubRingSelectionStrategy pubKeySelectionStrategy = - new XMPP.PubRingSelectionStrategy(); - private static final XMPP.SecRingSelectionStrategy secKeySelectionStrategy = - new XMPP.SecRingSelectionStrategy(); - - @Test - public void testMatchingXmppUIDAcceptedOnPubKey() throws IOException { - String uid = "xmpp:juliet@capulet.lit"; - PGPPublicKeyRing key = TestKeys.getJulietPublicKeyRing(); - - assertTrue(pubKeySelectionStrategy.accept(uid, key)); - } - - @Test - public void testAddressIsFormattedToMatchOnPubKey() throws IOException { - String uid = "juliet@capulet.lit"; - PGPPublicKeyRing key = TestKeys.getJulietPublicKeyRing(); - - assertTrue(pubKeySelectionStrategy.accept(uid, key)); - } - - @Test - public void testPubKeyWithDifferentUIDIsRejected() throws IOException { - String wrongUid = "romeo@montague.lit"; - PGPPublicKeyRing key = TestKeys.getJulietPublicKeyRing(); - assertFalse(pubKeySelectionStrategy.accept(wrongUid, key)); - } - - @Test - public void testMatchingEmailUIDAcceptedOnSecKey() throws IOException, PGPException { - String uid = "xmpp:juliet@capulet.lit"; - PGPSecretKeyRing key = TestKeys.getJulietSecretKeyRing(); - - assertTrue(secKeySelectionStrategy.accept(uid, key)); - } - - @Test - public void testAddressIsFormattedToMatchOnSecKey() throws IOException, PGPException { - String uid = "juliet@capulet.lit"; - PGPSecretKeyRing key = TestKeys.getJulietSecretKeyRing(); - - assertTrue(secKeySelectionStrategy.accept(uid, key)); - } - - @Test - public void testSecKeyWithDifferentUIDIsRejected() throws IOException, PGPException { - String wrongUid = "romeo@montague.lit"; - - PGPSecretKeyRing key = TestKeys.getJulietSecretKeyRing(); - assertFalse(secKeySelectionStrategy.accept(wrongUid, key)); - } -}