001// SPDX-FileCopyrightText: 2018 Paul Schaub <vanitasvitae@fsfe.org>
002//
003// SPDX-License-Identifier: Apache-2.0
004
005package org.pgpainless.util.selection.keyring.impl;
006
007import java.util.Iterator;
008
009import org.bouncycastle.openpgp.PGPPublicKeyRing;
010import org.bouncycastle.openpgp.PGPSecretKeyRing;
011import org.pgpainless.util.selection.keyring.PublicKeyRingSelectionStrategy;
012import org.pgpainless.util.selection.keyring.SecretKeyRingSelectionStrategy;
013
014public final class ExactUserId {
015
016    private ExactUserId() {
017
018    }
019
020    public static class PubRingSelectionStrategy extends PublicKeyRingSelectionStrategy<String> {
021
022        @Override
023        public boolean accept(String identifier, PGPPublicKeyRing keyRing) {
024            Iterator<String> userIds = keyRing.getPublicKey().getUserIDs();
025            while (userIds.hasNext()) {
026                if (userIds.next().equals(identifier)) return true;
027            }
028            return false;
029        }
030    }
031
032    public static class SecRingSelectionStrategy extends SecretKeyRingSelectionStrategy<String> {
033
034        @Override
035        public boolean accept(String identifier, PGPSecretKeyRing keyRing) {
036            Iterator<String> userIds = keyRing.getPublicKey().getUserIDs();
037            while (userIds.hasNext()) {
038                if (userIds.next().equals(identifier)) return true;
039            }
040            return false;
041        }
042    }
043}