001package org.apache.commons.ssl.org.bouncycastle.asn1.pkcs; 002 003import java.math.BigInteger; 004 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1OctetString; 009import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 010import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 011import org.apache.commons.ssl.org.bouncycastle.asn1.DEROctetString; 012import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 013 014public class PKCS12PBEParams 015 extends ASN1Object 016{ 017 ASN1Integer iterations; 018 ASN1OctetString iv; 019 020 public PKCS12PBEParams( 021 byte[] salt, 022 int iterations) 023 { 024 this.iv = new DEROctetString(salt); 025 this.iterations = new ASN1Integer(iterations); 026 } 027 028 private PKCS12PBEParams( 029 ASN1Sequence seq) 030 { 031 iv = (ASN1OctetString)seq.getObjectAt(0); 032 iterations = ASN1Integer.getInstance(seq.getObjectAt(1)); 033 } 034 035 public static PKCS12PBEParams getInstance( 036 Object obj) 037 { 038 if (obj instanceof PKCS12PBEParams) 039 { 040 return (PKCS12PBEParams)obj; 041 } 042 else if (obj != null) 043 { 044 return new PKCS12PBEParams(ASN1Sequence.getInstance(obj)); 045 } 046 047 return null; 048 } 049 050 public BigInteger getIterations() 051 { 052 return iterations.getValue(); 053 } 054 055 public byte[] getIV() 056 { 057 return iv.getOctets(); 058 } 059 060 public ASN1Primitive toASN1Primitive() 061 { 062 ASN1EncodableVector v = new ASN1EncodableVector(); 063 064 v.add(iv); 065 v.add(iterations); 066 067 return new DERSequence(v); 068 } 069}