PKCS12PBEParams.java revision e6bf3e8dfa2804891a82075cb469b736321b4827
1package org.bouncycastle.asn1.pkcs; 2 3import java.math.BigInteger; 4 5import org.bouncycastle.asn1.ASN1EncodableVector; 6import org.bouncycastle.asn1.ASN1Integer; 7import org.bouncycastle.asn1.ASN1Object; 8import org.bouncycastle.asn1.ASN1OctetString; 9import org.bouncycastle.asn1.ASN1Primitive; 10import org.bouncycastle.asn1.ASN1Sequence; 11import org.bouncycastle.asn1.DEROctetString; 12import org.bouncycastle.asn1.DERSequence; 13 14public class PKCS12PBEParams 15 extends ASN1Object 16{ 17 ASN1Integer 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 ASN1Integer(iterations); 26 } 27 28 private PKCS12PBEParams( 29 ASN1Sequence seq) 30 { 31 iv = (ASN1OctetString)seq.getObjectAt(0); 32 iterations = ASN1Integer.getInstance(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 != null) 43 { 44 return new PKCS12PBEParams(ASN1Sequence.getInstance(obj)); 45 } 46 47 return null; 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 ASN1Primitive toASN1Primitive() 61 { 62 ASN1EncodableVector v = new ASN1EncodableVector(); 63 64 v.add(iv); 65 v.add(iterations); 66 67 return new DERSequence(v); 68 } 69} 70