1package org.bouncycastle.asn1.pkcs; 2 3import org.bouncycastle.asn1.ASN1Encodable; 4import org.bouncycastle.asn1.ASN1EncodableVector; 5import org.bouncycastle.asn1.ASN1Object; 6import org.bouncycastle.asn1.ASN1ObjectIdentifier; 7import org.bouncycastle.asn1.ASN1Primitive; 8import org.bouncycastle.asn1.ASN1Sequence; 9import org.bouncycastle.asn1.DERSequence; 10import org.bouncycastle.asn1.DERTaggedObject; 11 12public class CRLBag 13 extends ASN1Object 14{ 15 private ASN1ObjectIdentifier crlId; 16 private ASN1Encodable crlValue; 17 18 private CRLBag( 19 ASN1Sequence seq) 20 { 21 this.crlId = (ASN1ObjectIdentifier)seq.getObjectAt(0); 22 this.crlValue = ((DERTaggedObject)seq.getObjectAt(1)).getObject(); 23 } 24 25 public static CRLBag getInstance(Object o) 26 { 27 if (o instanceof CRLBag) 28 { 29 return (CRLBag)o; 30 } 31 else if (o != null) 32 { 33 return new CRLBag(ASN1Sequence.getInstance(o)); 34 } 35 36 return null; 37 } 38 39 public CRLBag( 40 ASN1ObjectIdentifier crlId, 41 ASN1Encodable crlValue) 42 { 43 this.crlId = crlId; 44 this.crlValue = crlValue; 45 } 46 47 public ASN1ObjectIdentifier getcrlId() 48 { 49 return crlId; 50 } 51 52 public ASN1Encodable getCRLValue() 53 { 54 return crlValue; 55 } 56 57 /** 58 * <pre> 59 CRLBag ::= SEQUENCE { 60 crlId BAG-TYPE.&id ({CRLTypes}), 61 crlValue [0] EXPLICIT BAG-TYPE.&Type ({CRLTypes}{@crlId}) 62 } 63 64 x509CRL BAG-TYPE ::= {OCTET STRING IDENTIFIED BY {certTypes 1} 65 -- DER-encoded X.509 CRL stored in OCTET STRING 66 67 CRLTypes BAG-TYPE ::= { 68 x509CRL, 69 ... -- For future extensions 70 } 71 </pre> 72 */ 73 public ASN1Primitive toASN1Primitive() 74 { 75 ASN1EncodableVector v = new ASN1EncodableVector(); 76 77 v.add(crlId); 78 v.add(new DERTaggedObject(0, crlValue)); 79 80 return new DERSequence(v); 81 } 82} 83