001package org.apache.commons.ssl.org.bouncycastle.asn1.smime;
002
003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1OctetString;
004import org.apache.commons.ssl.org.bouncycastle.asn1.DERSet;
005import org.apache.commons.ssl.org.bouncycastle.asn1.DERTaggedObject;
006import org.apache.commons.ssl.org.bouncycastle.asn1.cms.Attribute;
007import org.apache.commons.ssl.org.bouncycastle.asn1.cms.IssuerAndSerialNumber;
008import org.apache.commons.ssl.org.bouncycastle.asn1.cms.RecipientKeyIdentifier;
009
010/**
011 * The SMIMEEncryptionKeyPreference object.
012 * <pre>
013 * SMIMEEncryptionKeyPreference ::= CHOICE {
014 *     issuerAndSerialNumber   [0] IssuerAndSerialNumber,
015 *     receipentKeyId          [1] RecipientKeyIdentifier,
016 *     subjectAltKeyIdentifier [2] SubjectKeyIdentifier
017 * }
018 * </pre>
019 */
020public class SMIMEEncryptionKeyPreferenceAttribute
021    extends Attribute
022{
023    public SMIMEEncryptionKeyPreferenceAttribute(
024        IssuerAndSerialNumber issAndSer)
025    {
026        super(SMIMEAttributes.encrypKeyPref,
027                new DERSet(new DERTaggedObject(false, 0, issAndSer)));
028    }
029    
030    public SMIMEEncryptionKeyPreferenceAttribute(
031        RecipientKeyIdentifier rKeyId)
032    {
033
034        super(SMIMEAttributes.encrypKeyPref, 
035                    new DERSet(new DERTaggedObject(false, 1, rKeyId)));
036    }
037    
038    /**
039     * @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
040     */
041    public SMIMEEncryptionKeyPreferenceAttribute(
042        ASN1OctetString sKeyId)
043    {
044
045        super(SMIMEAttributes.encrypKeyPref,
046                    new DERSet(new DERTaggedObject(false, 2, sKeyId)));
047    }
048}