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

CA认证

开发平台:

Java

  1. package org.bouncycastle.asn1.pkcs;
  2. import java.math.BigInteger;
  3. import java.util.*;
  4. import org.bouncycastle.asn1.*;
  5. public class DHParameter
  6.     implements DEREncodable
  7. {
  8.     DERInteger      p, g, l;
  9.     public DHParameter(
  10.         BigInteger  p,
  11.         BigInteger  g,
  12.         int         l)
  13.     {
  14.         this.p = new DERInteger(p);
  15.         this.g = new DERInteger(g);
  16.         if (l != 0)
  17.         {
  18.             this.l = new DERInteger(l);
  19.         }
  20.         else
  21.         {
  22.             this.l = null;
  23.         }
  24.     }
  25.     public DHParameter(
  26.         ASN1Sequence  seq)
  27.     {
  28.         Enumeration     e = seq.getObjects();
  29.         p = (DERInteger)e.nextElement();
  30.         g = (DERInteger)e.nextElement();
  31.         if (e.hasMoreElements())
  32.         {
  33.             l = (DERInteger)e.nextElement();
  34.         }
  35.         else
  36.         {
  37.             l = null;
  38.         }
  39.     }
  40.     public BigInteger getP()
  41.     {
  42.         return p.getPositiveValue();
  43.     }
  44.     public BigInteger getG()
  45.     {
  46.         return g.getPositiveValue();
  47.     }
  48.     public BigInteger getL()
  49.     {
  50.         if (l == null)
  51.         {
  52.             return null;
  53.         }
  54.         return l.getPositiveValue();
  55.     }
  56.     public DERObject getDERObject()
  57.     {
  58.         ASN1EncodableVector  v = new ASN1EncodableVector();
  59.         v.add(p);
  60.         v.add(g);
  61.         if (this.getL() != null)
  62.         {
  63.             v.add(l);
  64.         }
  65.         return new DERSequence(v);
  66.     }
  67. }