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