15faee297baafbc31667954a404d0451916ef5c59Brian Carlstrompackage org.bouncycastle.asn1.pkcs; 25faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 35faee297baafbc31667954a404d0451916ef5c59Brian Carlstromimport java.util.Enumeration; 45faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 55faee297baafbc31667954a404d0451916ef5c59Brian Carlstromimport org.bouncycastle.asn1.ASN1EncodableVector; 64c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1ObjectIdentifier; 74c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1Primitive; 85faee297baafbc31667954a404d0451916ef5c59Brian Carlstromimport org.bouncycastle.asn1.ASN1Sequence; 95faee297baafbc31667954a404d0451916ef5c59Brian Carlstromimport org.bouncycastle.asn1.DERSequence; 105faee297baafbc31667954a404d0451916ef5c59Brian Carlstromimport org.bouncycastle.asn1.x509.AlgorithmIdentifier; 115faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 125faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom/** 135faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom * @deprecated - use AlgorithmIdentifier and PBES2Parameters 145faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom */ 155faee297baafbc31667954a404d0451916ef5c59Brian Carlstrompublic class PBES2Algorithms 165faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom extends AlgorithmIdentifier implements PKCSObjectIdentifiers 175faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom{ 184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom private ASN1ObjectIdentifier objectId; 195faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom private KeyDerivationFunc func; 205faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom private EncryptionScheme scheme; 215faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 225faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom public PBES2Algorithms( 235faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom ASN1Sequence obj) 245faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom { 255faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom super(obj); 265faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 275faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom Enumeration e = obj.getObjects(); 285faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom objectId = (ASN1ObjectIdentifier)e.nextElement(); 305faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 315faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom ASN1Sequence seq = (ASN1Sequence)e.nextElement(); 325faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 335faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom e = seq.getObjects(); 345faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 355faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom ASN1Sequence funcSeq = (ASN1Sequence)e.nextElement(); 365faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 375faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom if (funcSeq.getObjectAt(0).equals(id_PBKDF2)) 385faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom { 395faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom func = new KeyDerivationFunc(id_PBKDF2, PBKDF2Params.getInstance(funcSeq.getObjectAt(1))); 405faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom } 415faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom else 425faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom { 435faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom func = new KeyDerivationFunc(funcSeq); 445faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom } 455faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 465faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom scheme = new EncryptionScheme((ASN1Sequence)e.nextElement()); 475faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom } 485faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 494c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public ASN1ObjectIdentifier getObjectId() 505faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom { 515faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom return objectId; 525faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom } 535faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 545faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom public KeyDerivationFunc getKeyDerivationFunc() 555faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom { 565faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom return func; 575faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom } 585faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 595faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom public EncryptionScheme getEncryptionScheme() 605faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom { 615faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom return scheme; 625faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom } 635faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 644c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public ASN1Primitive getASN1Primitive() 655faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom { 665faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom ASN1EncodableVector v = new ASN1EncodableVector(); 675faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom ASN1EncodableVector subV = new ASN1EncodableVector(); 685faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 695faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom v.add(objectId); 705faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 715faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom subV.add(func); 725faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom subV.add(scheme); 735faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom v.add(new DERSequence(subV)); 745faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom 755faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom return new DERSequence(v); 765faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom } 775faee297baafbc31667954a404d0451916ef5c59Brian Carlstrom} 78