Home | History | Annotate | Download | only in pkcs
      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