1 package org.bouncycastle.asn1.pkcs; 2 3 import java.util.Enumeration; 4 5 import org.bouncycastle.asn1.ASN1EncodableVector; 6 import org.bouncycastle.asn1.ASN1Sequence; 7 import org.bouncycastle.asn1.DERObject; 8 import org.bouncycastle.asn1.DERObjectIdentifier; 9 import org.bouncycastle.asn1.DERSequence; 10 import org.bouncycastle.asn1.x509.AlgorithmIdentifier; 11 12 /** 13 * @deprecated - use AlgorithmIdentifier and PBES2Parameters 14 */ 15 public class PBES2Algorithms 16 extends AlgorithmIdentifier implements PKCSObjectIdentifiers 17 { 18 private DERObjectIdentifier objectId; 19 private KeyDerivationFunc func; 20 private EncryptionScheme scheme; 21 22 public PBES2Algorithms( 23 ASN1Sequence obj) 24 { 25 super(obj); 26 27 Enumeration e = obj.getObjects(); 28 29 objectId = (DERObjectIdentifier)e.nextElement(); 30 31 ASN1Sequence seq = (ASN1Sequence)e.nextElement(); 32 33 e = seq.getObjects(); 34 35 ASN1Sequence funcSeq = (ASN1Sequence)e.nextElement(); 36 37 if (funcSeq.getObjectAt(0).equals(id_PBKDF2)) 38 { 39 func = new KeyDerivationFunc(id_PBKDF2, PBKDF2Params.getInstance(funcSeq.getObjectAt(1))); 40 } 41 else 42 { 43 func = new KeyDerivationFunc(funcSeq); 44 } 45 46 scheme = new EncryptionScheme((ASN1Sequence)e.nextElement()); 47 } 48 49 public DERObjectIdentifier getObjectId() 50 { 51 return objectId; 52 } 53 54 public KeyDerivationFunc getKeyDerivationFunc() 55 { 56 return func; 57 } 58 59 public EncryptionScheme getEncryptionScheme() 60 { 61 return scheme; 62 } 63 64 public DERObject getDERObject() 65 { 66 ASN1EncodableVector v = new ASN1EncodableVector(); 67 ASN1EncodableVector subV = new ASN1EncodableVector(); 68 69 v.add(objectId); 70 71 subV.add(func); 72 subV.add(scheme); 73 v.add(new DERSequence(subV)); 74 75 return new DERSequence(v); 76 } 77 } 78