001package org.apache.commons.ssl.org.bouncycastle.asn1.pkcs; 002 003import java.util.Enumeration; 004 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1ObjectIdentifier; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 009import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 010import org.apache.commons.ssl.org.bouncycastle.asn1.x509.AlgorithmIdentifier; 011 012/** 013 * @deprecated - use AlgorithmIdentifier and PBES2Parameters 014 */ 015public class PBES2Algorithms 016 extends AlgorithmIdentifier implements PKCSObjectIdentifiers 017{ 018 private ASN1ObjectIdentifier objectId; 019 private KeyDerivationFunc func; 020 private EncryptionScheme scheme; 021 022 public PBES2Algorithms( 023 ASN1Sequence obj) 024 { 025 super(obj); 026 027 Enumeration e = obj.getObjects(); 028 029 objectId = (ASN1ObjectIdentifier)e.nextElement(); 030 031 ASN1Sequence seq = (ASN1Sequence)e.nextElement(); 032 033 e = seq.getObjects(); 034 035 ASN1Sequence funcSeq = (ASN1Sequence)e.nextElement(); 036 037 if (funcSeq.getObjectAt(0).equals(id_PBKDF2)) 038 { 039 func = new KeyDerivationFunc(id_PBKDF2, PBKDF2Params.getInstance(funcSeq.getObjectAt(1))); 040 } 041 else 042 { 043 func = KeyDerivationFunc.getInstance(funcSeq); 044 } 045 046 scheme = EncryptionScheme.getInstance(e.nextElement()); 047 } 048 049 public ASN1ObjectIdentifier getObjectId() 050 { 051 return objectId; 052 } 053 054 public KeyDerivationFunc getKeyDerivationFunc() 055 { 056 return func; 057 } 058 059 public EncryptionScheme getEncryptionScheme() 060 { 061 return scheme; 062 } 063 064 public ASN1Primitive getASN1Primitive() 065 { 066 ASN1EncodableVector v = new ASN1EncodableVector(); 067 ASN1EncodableVector subV = new ASN1EncodableVector(); 068 069 v.add(objectId); 070 071 subV.add(func); 072 subV.add(scheme); 073 v.add(new DERSequence(subV)); 074 075 return new DERSequence(v); 076 } 077}