001package org.apache.commons.ssl.org.bouncycastle.asn1.x9; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer; 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1TaggedObject; 009import org.apache.commons.ssl.org.bouncycastle.asn1.DERBitString; 010import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 011 012public class DHValidationParms extends ASN1Object 013{ 014 private DERBitString seed; 015 private ASN1Integer pgenCounter; 016 017 public static DHValidationParms getInstance(ASN1TaggedObject obj, boolean explicit) 018 { 019 return getInstance(ASN1Sequence.getInstance(obj, explicit)); 020 } 021 022 public static DHValidationParms getInstance(Object obj) 023 { 024 if (obj instanceof DHValidationParms) 025 { 026 return (DHValidationParms)obj; 027 } 028 else if (obj != null) 029 { 030 return new DHValidationParms(ASN1Sequence.getInstance(obj)); 031 } 032 033 return null; 034 } 035 036 public DHValidationParms(DERBitString seed, ASN1Integer pgenCounter) 037 { 038 if (seed == null) 039 { 040 throw new IllegalArgumentException("'seed' cannot be null"); 041 } 042 if (pgenCounter == null) 043 { 044 throw new IllegalArgumentException("'pgenCounter' cannot be null"); 045 } 046 047 this.seed = seed; 048 this.pgenCounter = pgenCounter; 049 } 050 051 private DHValidationParms(ASN1Sequence seq) 052 { 053 if (seq.size() != 2) 054 { 055 throw new IllegalArgumentException("Bad sequence size: " + seq.size()); 056 } 057 058 this.seed = DERBitString.getInstance(seq.getObjectAt(0)); 059 this.pgenCounter = ASN1Integer.getInstance(seq.getObjectAt(1)); 060 } 061 062 public DERBitString getSeed() 063 { 064 return this.seed; 065 } 066 067 public ASN1Integer getPgenCounter() 068 { 069 return this.pgenCounter; 070 } 071 072 public ASN1Primitive toASN1Primitive() 073 { 074 ASN1EncodableVector v = new ASN1EncodableVector(); 075 v.add(this.seed); 076 v.add(this.pgenCounter); 077 return new DERSequence(v); 078 } 079}