1package org.bouncycastle.asn1.pkcs;
2
3import org.bouncycastle.asn1.ASN1Encodable;
4import org.bouncycastle.asn1.ASN1EncodableVector;
5import org.bouncycastle.asn1.ASN1ObjectIdentifier;
6import org.bouncycastle.asn1.ASN1Primitive;
7import org.bouncycastle.asn1.ASN1Sequence;
8import org.bouncycastle.asn1.DERSequence;
9import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
10
11public class EncryptionScheme
12    extends AlgorithmIdentifier
13{
14    public EncryptionScheme(
15        ASN1ObjectIdentifier objectId,
16        ASN1Encodable parameters)
17    {
18        super(objectId, parameters);
19    }
20
21    EncryptionScheme(
22        ASN1Sequence  seq)
23    {
24        this((ASN1ObjectIdentifier)seq.getObjectAt(0), seq.getObjectAt(1));
25    }
26
27    public static final AlgorithmIdentifier getInstance(Object obj)
28    {
29        if (obj instanceof EncryptionScheme)
30        {
31            return (EncryptionScheme)obj;
32        }
33        else if (obj instanceof ASN1Sequence)
34        {
35            return new EncryptionScheme((ASN1Sequence)obj);
36        }
37
38        throw new IllegalArgumentException("unknown object in factory: " + obj.getClass().getName());
39    }
40
41    public ASN1Primitive getObject()
42    {
43        return (ASN1Primitive)getParameters();
44    }
45
46    public ASN1Primitive getASN1Primitive()
47    {
48        ASN1EncodableVector  v = new ASN1EncodableVector();
49
50        v.add(getObjectId());
51        v.add(getParameters());
52
53        return new DERSequence(v);
54    }
55}
56