001package org.apache.commons.ssl.org.bouncycastle.asn1.cmp; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1GeneralizedTime; 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.DERSequence; 009import org.apache.commons.ssl.org.bouncycastle.asn1.crmf.CertId; 010import org.apache.commons.ssl.org.bouncycastle.asn1.x509.Extensions; 011 012public class RevAnnContent 013 extends ASN1Object 014{ 015 private PKIStatus status; 016 private CertId certId; 017 private ASN1GeneralizedTime willBeRevokedAt; 018 private ASN1GeneralizedTime badSinceDate; 019 private Extensions crlDetails; 020 021 private RevAnnContent(ASN1Sequence seq) 022 { 023 status = PKIStatus.getInstance(seq.getObjectAt(0)); 024 certId = CertId.getInstance(seq.getObjectAt(1)); 025 willBeRevokedAt = ASN1GeneralizedTime.getInstance(seq.getObjectAt(2)); 026 badSinceDate = ASN1GeneralizedTime.getInstance(seq.getObjectAt(3)); 027 028 if (seq.size() > 4) 029 { 030 crlDetails = Extensions.getInstance(seq.getObjectAt(4)); 031 } 032 } 033 034 public static RevAnnContent getInstance(Object o) 035 { 036 if (o instanceof RevAnnContent) 037 { 038 return (RevAnnContent)o; 039 } 040 041 if (o != null) 042 { 043 return new RevAnnContent(ASN1Sequence.getInstance(o)); 044 } 045 046 return null; 047 } 048 049 public PKIStatus getStatus() 050 { 051 return status; 052 } 053 054 public CertId getCertId() 055 { 056 return certId; 057 } 058 059 public ASN1GeneralizedTime getWillBeRevokedAt() 060 { 061 return willBeRevokedAt; 062 } 063 064 public ASN1GeneralizedTime getBadSinceDate() 065 { 066 return badSinceDate; 067 } 068 069 public Extensions getCrlDetails() 070 { 071 return crlDetails; 072 } 073 074 /** 075 * <pre> 076 * RevAnnContent ::= SEQUENCE { 077 * status PKIStatus, 078 * certId CertId, 079 * willBeRevokedAt GeneralizedTime, 080 * badSinceDate GeneralizedTime, 081 * crlDetails Extensions OPTIONAL 082 * -- extra CRL details (e.g., crl number, reason, location, etc.) 083 * } 084 * </pre> 085 * @return a basic ASN.1 object representation. 086 */ 087 public ASN1Primitive toASN1Primitive() 088 { 089 ASN1EncodableVector v = new ASN1EncodableVector(); 090 091 v.add(status); 092 v.add(certId); 093 v.add(willBeRevokedAt); 094 v.add(badSinceDate); 095 096 if (crlDetails != null) 097 { 098 v.add(crlDetails); 099 } 100 101 return new DERSequence(v); 102 } 103}