PBKDF2Params.java
上传用户:lior1029
上传日期:2013-05-07
资源大小:209k
文件大小:2k
源码类别:

CA认证

开发平台:

Java

  1. package org.bouncycastle.asn1.pkcs;
  2. import java.util.*;
  3. import java.math.BigInteger;
  4. import org.bouncycastle.asn1.*;
  5. public class PBKDF2Params
  6.     extends KeyDerivationFunc
  7. {
  8.     DERObjectIdentifier id;
  9.     ASN1OctetString     octStr;
  10.     DERInteger          iterationCount;
  11.     DERInteger          keyLength;
  12.     PBKDF2Params(
  13.         ASN1Sequence  seq)
  14.     {
  15.         super(seq);
  16.         Enumeration e = seq.getObjects();
  17.         id = (DERObjectIdentifier)e.nextElement();
  18.         ASN1Sequence  params = (ASN1Sequence)e.nextElement();
  19.         e = params.getObjects();
  20.         octStr = (ASN1OctetString)e.nextElement();
  21.         iterationCount = (DERInteger)e.nextElement();
  22.         if (e.hasMoreElements())
  23.         {
  24.             keyLength = (DERInteger)e.nextElement();
  25.         }
  26.         else
  27.         {
  28.             keyLength = null;
  29.         }
  30.     }
  31.     public byte[] getSalt()
  32.     {
  33.         return octStr.getOctets();
  34.     }
  35.     public BigInteger getIterationCount()
  36.     {
  37.         return iterationCount.getValue();
  38.     }
  39.     public BigInteger getKeyLength()
  40.     {
  41.         if (keyLength != null)
  42.         {
  43.             return keyLength.getValue();
  44.         }
  45.         return null;
  46.     }
  47.     public DERObject getDERObject()
  48.     {
  49.         ASN1EncodableVector  v = new ASN1EncodableVector();
  50.         ASN1EncodableVector  subV = new ASN1EncodableVector();
  51.         v.add(id);
  52.         subV.add(octStr);
  53.         subV.add(iterationCount);
  54.         if (keyLength != null)
  55.         {
  56.             subV.add(keyLength);
  57.         }
  58.         v.add(new DERSequence(subV));
  59.         return new DERSequence(v);
  60.     }
  61. }