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}