001package org.apache.commons.ssl.org.bouncycastle.asn1.pkcs; 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.BERSequence; 008import org.apache.commons.ssl.org.bouncycastle.asn1.DLSequence; 009 010public class AuthenticatedSafe 011 extends ASN1Object 012{ 013 private ContentInfo[] info; 014 private boolean isBer = true; 015 016 private AuthenticatedSafe( 017 ASN1Sequence seq) 018 { 019 info = new ContentInfo[seq.size()]; 020 021 for (int i = 0; i != info.length; i++) 022 { 023 info[i] = ContentInfo.getInstance(seq.getObjectAt(i)); 024 } 025 026 isBer = seq instanceof BERSequence; 027 } 028 029 public static AuthenticatedSafe getInstance( 030 Object o) 031 { 032 if (o instanceof AuthenticatedSafe) 033 { 034 return (AuthenticatedSafe)o; 035 } 036 037 if (o != null) 038 { 039 return new AuthenticatedSafe(ASN1Sequence.getInstance(o)); 040 } 041 042 return null; 043 } 044 045 public AuthenticatedSafe( 046 ContentInfo[] info) 047 { 048 this.info = info; 049 } 050 051 public ContentInfo[] getContentInfo() 052 { 053 return info; 054 } 055 056 public ASN1Primitive toASN1Primitive() 057 { 058 ASN1EncodableVector v = new ASN1EncodableVector(); 059 060 for (int i = 0; i != info.length; i++) 061 { 062 v.add(info[i]); 063 } 064 065 if (isBer) 066 { 067 return new BERSequence(v); 068 } 069 else 070 { 071 return new DLSequence(v); 072 } 073 } 074}