001package org.apache.commons.ssl.org.bouncycastle.asn1.cms; 002 003import java.io.IOException; 004 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Encodable; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1ObjectIdentifier; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1SequenceParser; 008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1TaggedObjectParser; 009 010/** 011 * <a href="http://tools.ietf.org/html/rfc5652#section-3">RFC 5652</a> {@link ContentInfo} object parser. 012 * 013 * <pre> 014 * ContentInfo ::= SEQUENCE { 015 * contentType ContentType, 016 * content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL } 017 * </pre> 018 */ 019public class ContentInfoParser 020{ 021 private ASN1ObjectIdentifier contentType; 022 private ASN1TaggedObjectParser content; 023 024 public ContentInfoParser( 025 ASN1SequenceParser seq) 026 throws IOException 027 { 028 contentType = (ASN1ObjectIdentifier)seq.readObject(); 029 content = (ASN1TaggedObjectParser)seq.readObject(); 030 } 031 032 public ASN1ObjectIdentifier getContentType() 033 { 034 return contentType; 035 } 036 037 public ASN1Encodable getContent( 038 int tag) 039 throws IOException 040 { 041 if (content != null) 042 { 043 return content.getObjectParser(tag, true); 044 } 045 046 return null; 047 } 048}