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