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 * OcspResponsesID ::= SEQUENCE { 012 * ocspIdentifier OcspIdentifier, 013 * ocspRepHash OtherHash OPTIONAL 014 * } 015 * </pre> 016 */ 017public class OcspResponsesID 018 extends ASN1Object 019{ 020 021 private OcspIdentifier ocspIdentifier; 022 private OtherHash ocspRepHash; 023 024 public static OcspResponsesID getInstance(Object obj) 025 { 026 if (obj instanceof OcspResponsesID) 027 { 028 return (OcspResponsesID)obj; 029 } 030 else if (obj != null) 031 { 032 return new OcspResponsesID(ASN1Sequence.getInstance(obj)); 033 } 034 035 return null; 036 } 037 038 private OcspResponsesID(ASN1Sequence seq) 039 { 040 if (seq.size() < 1 || seq.size() > 2) 041 { 042 throw new IllegalArgumentException("Bad sequence size: " 043 + seq.size()); 044 } 045 this.ocspIdentifier = OcspIdentifier.getInstance(seq.getObjectAt(0)); 046 if (seq.size() > 1) 047 { 048 this.ocspRepHash = OtherHash.getInstance(seq.getObjectAt(1)); 049 } 050 } 051 052 public OcspResponsesID(OcspIdentifier ocspIdentifier) 053 { 054 this(ocspIdentifier, null); 055 } 056 057 public OcspResponsesID(OcspIdentifier ocspIdentifier, OtherHash ocspRepHash) 058 { 059 this.ocspIdentifier = ocspIdentifier; 060 this.ocspRepHash = ocspRepHash; 061 } 062 063 public OcspIdentifier getOcspIdentifier() 064 { 065 return this.ocspIdentifier; 066 } 067 068 public OtherHash getOcspRepHash() 069 { 070 return this.ocspRepHash; 071 } 072 073 public ASN1Primitive toASN1Primitive() 074 { 075 ASN1EncodableVector v = new ASN1EncodableVector(); 076 v.add(this.ocspIdentifier); 077 if (null != this.ocspRepHash) 078 { 079 v.add(this.ocspRepHash); 080 } 081 return new DERSequence(v); 082 } 083}