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