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.ASN1Object; 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 007import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 008 009public class ProtectedPart 010 extends ASN1Object 011{ 012 private PKIHeader header; 013 private PKIBody body; 014 015 private ProtectedPart(ASN1Sequence seq) 016 { 017 header = PKIHeader.getInstance(seq.getObjectAt(0)); 018 body = PKIBody.getInstance(seq.getObjectAt(1)); 019 } 020 021 public static ProtectedPart getInstance(Object o) 022 { 023 if (o instanceof ProtectedPart) 024 { 025 return (ProtectedPart)o; 026 } 027 028 if (o != null) 029 { 030 return new ProtectedPart(ASN1Sequence.getInstance(o)); 031 } 032 033 return null; 034 } 035 036 public ProtectedPart(PKIHeader header, PKIBody body) 037 { 038 this.header = header; 039 this.body = body; 040 } 041 042 public PKIHeader getHeader() 043 { 044 return header; 045 } 046 047 public PKIBody getBody() 048 { 049 return body; 050 } 051 052 /** 053 * <pre> 054 * ProtectedPart ::= SEQUENCE { 055 * header PKIHeader, 056 * body PKIBody 057 * } 058 * </pre> 059 * @return a basic ASN.1 object representation. 060 */ 061 public ASN1Primitive toASN1Primitive() 062 { 063 ASN1EncodableVector v = new ASN1EncodableVector(); 064 065 v.add(header); 066 v.add(body); 067 068 return new DERSequence(v); 069 } 070}