1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.asn1.pkcs;
2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
34c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1Encodable;
4b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.ASN1EncodableVector;
54c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1ObjectIdentifier;
64c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1Primitive;
7b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.ASN1Sequence;
8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.DERSequence;
9b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.x509.AlgorithmIdentifier;
10b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic class EncryptionScheme
12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    extends AlgorithmIdentifier
136e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom{
146e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public EncryptionScheme(
154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        ASN1ObjectIdentifier objectId,
164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        ASN1Encodable parameters)
176e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
186e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        super(objectId, parameters);
196e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
21b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    EncryptionScheme(
22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        ASN1Sequence  seq)
23b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
244c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        this((ASN1ObjectIdentifier)seq.getObjectAt(0), seq.getObjectAt(1));
256e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    }
266e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
276e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    public static final AlgorithmIdentifier getInstance(Object obj)
286e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    {
296e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        if (obj instanceof EncryptionScheme)
306e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        {
316e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom            return (EncryptionScheme)obj;
326e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        }
336e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        else if (obj instanceof ASN1Sequence)
346e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        {
356e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom            return new EncryptionScheme((ASN1Sequence)obj);
366e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        }
376e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
386e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        throw new IllegalArgumentException("unknown object in factory: " + obj.getClass().getName());
39b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
40b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public ASN1Primitive getObject()
42b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
434c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return (ASN1Primitive)getParameters();
44b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
45b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
464c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public ASN1Primitive getASN1Primitive()
47b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
48b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        ASN1EncodableVector  v = new ASN1EncodableVector();
49b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
506e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        v.add(getObjectId());
516e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom        v.add(getParameters());
52b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
53b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        return new DERSequence(v);
54b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
55b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam}
56