1 package org.bouncycastle.asn1.smime;
2 
3 import org.bouncycastle.asn1.ASN1OctetString;
4 import org.bouncycastle.asn1.DERSet;
5 import org.bouncycastle.asn1.DERTaggedObject;
6 import org.bouncycastle.asn1.cms.Attribute;
7 import org.bouncycastle.asn1.cms.IssuerAndSerialNumber;
8 import org.bouncycastle.asn1.cms.RecipientKeyIdentifier;
9 
10 /**
11  * The SMIMEEncryptionKeyPreference object.
12  * <pre>
13  * SMIMEEncryptionKeyPreference ::= CHOICE {
14  *     issuerAndSerialNumber   [0] IssuerAndSerialNumber,
15  *     receipentKeyId          [1] RecipientKeyIdentifier,
16  *     subjectAltKeyIdentifier [2] SubjectKeyIdentifier
17  * }
18  * </pre>
19  */
20 public class SMIMEEncryptionKeyPreferenceAttribute
21     extends Attribute
22 {
SMIMEEncryptionKeyPreferenceAttribute( IssuerAndSerialNumber issAndSer)23     public SMIMEEncryptionKeyPreferenceAttribute(
24         IssuerAndSerialNumber issAndSer)
25     {
26         super(SMIMEAttributes.encrypKeyPref,
27                 new DERSet(new DERTaggedObject(false, 0, issAndSer)));
28     }
29 
SMIMEEncryptionKeyPreferenceAttribute( RecipientKeyIdentifier rKeyId)30     public SMIMEEncryptionKeyPreferenceAttribute(
31         RecipientKeyIdentifier rKeyId)
32     {
33 
34         super(SMIMEAttributes.encrypKeyPref,
35                     new DERSet(new DERTaggedObject(false, 1, rKeyId)));
36     }
37 
38     /**
39      * @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
40      */
SMIMEEncryptionKeyPreferenceAttribute( ASN1OctetString sKeyId)41     public SMIMEEncryptionKeyPreferenceAttribute(
42         ASN1OctetString sKeyId)
43     {
44 
45         super(SMIMEAttributes.encrypKeyPref,
46                     new DERSet(new DERTaggedObject(false, 2, sKeyId)));
47     }
48 }
49