diff options
Diffstat (limited to 'bcpkix/src/main/java/org/bouncycastle/cms/RecipientInformationStore.java')
-rw-r--r-- | bcpkix/src/main/java/org/bouncycastle/cms/RecipientInformationStore.java | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/bcpkix/src/main/java/org/bouncycastle/cms/RecipientInformationStore.java b/bcpkix/src/main/java/org/bouncycastle/cms/RecipientInformationStore.java deleted file mode 100644 index fdcd930..0000000 --- a/bcpkix/src/main/java/org/bouncycastle/cms/RecipientInformationStore.java +++ /dev/null @@ -1,143 +0,0 @@ -package org.bouncycastle.cms; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.bouncycastle.asn1.x500.X500Name; -import org.bouncycastle.util.*; -import org.bouncycastle.util.Iterable; - -public class RecipientInformationStore - implements Iterable<RecipientInformation> -{ - private final List all; //ArrayList[RecipientInformation] - private final Map table = new HashMap(); // HashMap[RecipientID, ArrayList[RecipientInformation]] - - /** - * Create a store containing a single RecipientInformation object. - * - * @param recipientInformation the signer information to contain. - */ - public RecipientInformationStore( - RecipientInformation recipientInformation) - { - this.all = new ArrayList(1); - this.all.add(recipientInformation); - - RecipientId sid = recipientInformation.getRID(); - - table.put(sid, all); - } - - public RecipientInformationStore( - Collection<RecipientInformation> recipientInfos) - { - Iterator it = recipientInfos.iterator(); - - while (it.hasNext()) - { - RecipientInformation recipientInformation = (RecipientInformation)it.next(); - RecipientId rid = recipientInformation.getRID(); - - List list = (ArrayList)table.get(rid); - if (list == null) - { - list = new ArrayList(1); - table.put(rid, list); - } - - list.add(recipientInformation); - } - - this.all = new ArrayList(recipientInfos); - } - - /** - * Return the first RecipientInformation object that matches the - * passed in selector. Null if there are no matches. - * - * @param selector to identify a recipient - * @return a single RecipientInformation object. Null if none matches. - */ - public RecipientInformation get( - RecipientId selector) - { - Collection list = getRecipients(selector); - - return list.size() == 0 ? null : (RecipientInformation)list.iterator().next(); - } - - /** - * Return the number of recipients in the collection. - * - * @return number of recipients identified. - */ - public int size() - { - return all.size(); - } - - /** - * Return all recipients in the collection - * - * @return a collection of recipients. - */ - public Collection<RecipientInformation> getRecipients() - { - return new ArrayList(all); - } - - /** - * Return possible empty collection with recipients matching the passed in RecipientId - * - * @param selector a recipient id to select against. - * @return a collection of RecipientInformation objects. - */ - public Collection<Recipient> getRecipients( - RecipientId selector) - { - if (selector instanceof KeyTransRecipientId) - { - KeyTransRecipientId keyTrans = (KeyTransRecipientId)selector; - - X500Name issuer = keyTrans.getIssuer(); - byte[] subjectKeyId = keyTrans.getSubjectKeyIdentifier(); - - if (issuer != null && subjectKeyId != null) - { - List results = new ArrayList(); - - Collection match1 = getRecipients(new KeyTransRecipientId(issuer, keyTrans.getSerialNumber())); - if (match1 != null) - { - results.addAll(match1); - } - - Collection match2 = getRecipients(new KeyTransRecipientId(subjectKeyId)); - if (match2 != null) - { - results.addAll(match2); - } - - return results; - } - } - - List list = (ArrayList)table.get(selector); - - return list == null ? new ArrayList() : new ArrayList(list); - } - - - /** - * Support method for Iterable where available. - */ - public Iterator<RecipientInformation> iterator() - { - return getRecipients().iterator(); - } -} |