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