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