Home | History | Annotate | Download | only in pkcs
      1 package org.bouncycastle.asn1.pkcs;
      2 
      3 import java.math.BigInteger;
      4 
      5 import org.bouncycastle.asn1.ASN1Encodable;
      6 import org.bouncycastle.asn1.ASN1EncodableVector;
      7 import org.bouncycastle.asn1.ASN1OctetString;
      8 import org.bouncycastle.asn1.ASN1Sequence;
      9 import org.bouncycastle.asn1.DERInteger;
     10 import org.bouncycastle.asn1.DERObject;
     11 import org.bouncycastle.asn1.DEROctetString;
     12 import org.bouncycastle.asn1.DERSequence;
     13 
     14 public class PKCS12PBEParams
     15     extends ASN1Encodable
     16 {
     17     DERInteger      iterations;
     18     ASN1OctetString iv;
     19 
     20     public PKCS12PBEParams(
     21         byte[]      salt,
     22         int         iterations)
     23     {
     24         this.iv = new DEROctetString(salt);
     25         this.iterations = new DERInteger(iterations);
     26     }
     27 
     28     public PKCS12PBEParams(
     29         ASN1Sequence  seq)
     30     {
     31         iv = (ASN1OctetString)seq.getObjectAt(0);
     32         iterations = (DERInteger)seq.getObjectAt(1);
     33     }
     34 
     35     public static PKCS12PBEParams getInstance(
     36         Object  obj)
     37     {
     38         if (obj instanceof PKCS12PBEParams)
     39         {
     40             return (PKCS12PBEParams)obj;
     41         }
     42         else if (obj instanceof ASN1Sequence)
     43         {
     44             return new PKCS12PBEParams((ASN1Sequence)obj);
     45         }
     46 
     47         throw new IllegalArgumentException("unknown object in factory: " + obj.getClass().getName());
     48     }
     49 
     50     public BigInteger getIterations()
     51     {
     52         return iterations.getValue();
     53     }
     54 
     55     public byte[] getIV()
     56     {
     57         return iv.getOctets();
     58     }
     59 
     60     public DERObject toASN1Object()
     61     {
     62         ASN1EncodableVector  v = new ASN1EncodableVector();
     63 
     64         v.add(iv);
     65         v.add(iterations);
     66 
     67         return new DERSequence(v);
     68     }
     69 }
     70