001package org.apache.commons.ssl.org.bouncycastle.asn1.ocsp; 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.ASN1ObjectIdentifier; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1OctetString; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 009import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1TaggedObject; 010import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 011 012public class ResponseBytes 013 extends ASN1Object 014{ 015 ASN1ObjectIdentifier responseType; 016 ASN1OctetString response; 017 018 public ResponseBytes( 019 ASN1ObjectIdentifier responseType, 020 ASN1OctetString response) 021 { 022 this.responseType = responseType; 023 this.response = response; 024 } 025 026 public ResponseBytes( 027 ASN1Sequence seq) 028 { 029 responseType = (ASN1ObjectIdentifier)seq.getObjectAt(0); 030 response = (ASN1OctetString)seq.getObjectAt(1); 031 } 032 033 public static ResponseBytes getInstance( 034 ASN1TaggedObject obj, 035 boolean explicit) 036 { 037 return getInstance(ASN1Sequence.getInstance(obj, explicit)); 038 } 039 040 public static ResponseBytes getInstance( 041 Object obj) 042 { 043 if (obj == null || obj instanceof ResponseBytes) 044 { 045 return (ResponseBytes)obj; 046 } 047 else if (obj instanceof ASN1Sequence) 048 { 049 return new ResponseBytes((ASN1Sequence)obj); 050 } 051 052 throw new IllegalArgumentException("unknown object in factory: " + obj.getClass().getName()); 053 } 054 055 public ASN1ObjectIdentifier getResponseType() 056 { 057 return responseType; 058 } 059 060 public ASN1OctetString getResponse() 061 { 062 return response; 063 } 064 065 /** 066 * Produce an object suitable for an ASN1OutputStream. 067 * <pre> 068 * ResponseBytes ::= SEQUENCE { 069 * responseType OBJECT IDENTIFIER, 070 * response OCTET STRING } 071 * </pre> 072 */ 073 public ASN1Primitive toASN1Primitive() 074 { 075 ASN1EncodableVector v = new ASN1EncodableVector(); 076 077 v.add(responseType); 078 v.add(response); 079 080 return new DERSequence(v); 081 } 082}