001package org.apache.commons.ssl.org.bouncycastle.asn1.pkcs; 002 003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Encodable; 004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1ObjectIdentifier; 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.DERSequence; 010import org.apache.commons.ssl.org.bouncycastle.asn1.DERTaggedObject; 011 012public class CRLBag 013 extends ASN1Object 014{ 015 private ASN1ObjectIdentifier crlId; 016 private ASN1Encodable crlValue; 017 018 private CRLBag( 019 ASN1Sequence seq) 020 { 021 this.crlId = (ASN1ObjectIdentifier)seq.getObjectAt(0); 022 this.crlValue = ((DERTaggedObject)seq.getObjectAt(1)).getObject(); 023 } 024 025 public static CRLBag getInstance(Object o) 026 { 027 if (o instanceof CRLBag) 028 { 029 return (CRLBag)o; 030 } 031 else if (o != null) 032 { 033 return new CRLBag(ASN1Sequence.getInstance(o)); 034 } 035 036 return null; 037 } 038 039 public CRLBag( 040 ASN1ObjectIdentifier crlId, 041 ASN1Encodable crlValue) 042 { 043 this.crlId = crlId; 044 this.crlValue = crlValue; 045 } 046 047 public ASN1ObjectIdentifier getcrlId() 048 { 049 return crlId; 050 } 051 052 public ASN1Encodable getCRLValue() 053 { 054 return crlValue; 055 } 056 057 /** 058 * <pre> 059 * CRLBag ::= SEQUENCE { 060 * crlId BAG-TYPE.&id ({CRLTypes}), 061 * crlValue [0] EXPLICIT BAG-TYPE.&Type ({CRLTypes}{@crlId}) 062 * } 063 * 064 * x509CRL BAG-TYPE ::= {OCTET STRING IDENTIFIED BY {certTypes 1} 065 * -- DER-encoded X.509 CRL stored in OCTET STRING 066 * 067 * CRLTypes BAG-TYPE ::= { 068 * x509CRL, 069 * ... -- For future extensions 070 * } 071 * </pre> 072 */ 073 public ASN1Primitive toASN1Primitive() 074 { 075 ASN1EncodableVector v = new ASN1EncodableVector(); 076 077 v.add(crlId); 078 v.add(new DERTaggedObject(0, crlValue)); 079 080 return new DERSequence(v); 081 } 082}