001package org.apache.commons.ssl.org.bouncycastle.asn1.dvcs; 002 003import java.io.IOException; 004 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Choice; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 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.DERTaggedObject; 011 012/** 013 * <pre> 014 * DVCSResponse ::= CHOICE 015 * { 016 * dvCertInfo DVCSCertInfo , 017 * dvErrorNote [0] DVCSErrorNotice 018 * } 019 * </pre> 020 */ 021 022public class DVCSResponse 023 extends ASN1Object 024 implements ASN1Choice 025{ 026 private DVCSCertInfo dvCertInfo; 027 private DVCSErrorNotice dvErrorNote; 028 029 public DVCSResponse(DVCSCertInfo dvCertInfo) 030 { 031 this.dvCertInfo = dvCertInfo; 032 } 033 034 public DVCSResponse(DVCSErrorNotice dvErrorNote) 035 { 036 this.dvErrorNote = dvErrorNote; 037 } 038 039 public static DVCSResponse getInstance(Object obj) 040 { 041 if (obj == null || obj instanceof DVCSResponse) 042 { 043 return (DVCSResponse)obj; 044 } 045 else 046 { 047 if (obj instanceof byte[]) 048 { 049 try 050 { 051 return getInstance(ASN1Primitive.fromByteArray((byte[])obj)); 052 } 053 catch (IOException e) 054 { 055 throw new IllegalArgumentException("failed to construct sequence from byte[]: " + e.getMessage()); 056 } 057 } 058 if (obj instanceof ASN1Sequence) 059 { 060 DVCSCertInfo dvCertInfo = DVCSCertInfo.getInstance(obj); 061 062 return new DVCSResponse(dvCertInfo); 063 } 064 if (obj instanceof ASN1TaggedObject) 065 { 066 ASN1TaggedObject t = ASN1TaggedObject.getInstance(obj); 067 DVCSErrorNotice dvErrorNote = DVCSErrorNotice.getInstance(t, false); 068 069 return new DVCSResponse(dvErrorNote); 070 } 071 } 072 073 throw new IllegalArgumentException("Couldn't convert from object to DVCSResponse: " + obj.getClass().getName()); 074 } 075 076 public static DVCSResponse getInstance( 077 ASN1TaggedObject obj, 078 boolean explicit) 079 { 080 return getInstance(ASN1Sequence.getInstance(obj, explicit)); 081 } 082 083 public DVCSCertInfo getCertInfo() 084 { 085 return dvCertInfo; 086 } 087 088 public DVCSErrorNotice getErrorNotice() 089 { 090 return dvErrorNote; 091 } 092 093 public ASN1Primitive toASN1Primitive() 094 { 095 if (dvCertInfo != null) 096 { 097 return dvCertInfo.toASN1Primitive(); 098 } 099 else 100 { 101 return new DERTaggedObject(0, dvErrorNote); 102 } 103 } 104 105 public String toString() 106 { 107 if (dvCertInfo != null) 108 { 109 return "DVCSResponse {\ndvCertInfo: " + dvCertInfo.toString() + "}\n"; 110 } 111 if (dvErrorNote != null) 112 { 113 return "DVCSResponse {\ndvErrorNote: " + dvErrorNote.toString() + "}\n"; 114 } 115 return null; 116 } 117}