001package org.apache.commons.ssl.org.bouncycastle.asn1.oiw; 002 003import java.math.BigInteger; 004import java.util.Enumeration; 005 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer; 008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 009import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 010import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 011import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 012 013public class ElGamalParameter 014 extends ASN1Object 015{ 016 ASN1Integer p, g; 017 018 public ElGamalParameter( 019 BigInteger p, 020 BigInteger g) 021 { 022 this.p = new ASN1Integer(p); 023 this.g = new ASN1Integer(g); 024 } 025 026 private ElGamalParameter( 027 ASN1Sequence seq) 028 { 029 Enumeration e = seq.getObjects(); 030 031 p = (ASN1Integer)e.nextElement(); 032 g = (ASN1Integer)e.nextElement(); 033 } 034 035 public static ElGamalParameter getInstance(Object o) 036 { 037 if (o instanceof ElGamalParameter) 038 { 039 return (ElGamalParameter)o; 040 } 041 else if (o != null) 042 { 043 return new ElGamalParameter(ASN1Sequence.getInstance(o)); 044 } 045 046 return null; 047 } 048 049 public BigInteger getP() 050 { 051 return p.getPositiveValue(); 052 } 053 054 public BigInteger getG() 055 { 056 return g.getPositiveValue(); 057 } 058 059 public ASN1Primitive toASN1Primitive() 060 { 061 ASN1EncodableVector v = new ASN1EncodableVector(); 062 063 v.add(p); 064 v.add(g); 065 066 return new DERSequence(v); 067 } 068}