AuthenticatedSafe
namespace Org.BouncyCastle.Asn1.Pkcs
{
public class AuthenticatedSafe : Asn1Encodable
{
private readonly ContentInfo[] m_info;
private readonly bool m_isBer;
public static AuthenticatedSafe GetInstance(object obj)
{
if (obj == null)
return null;
AuthenticatedSafe authenticatedSafe = obj as AuthenticatedSafe;
if (authenticatedSafe != null)
return authenticatedSafe;
return new AuthenticatedSafe(Asn1Sequence.GetInstance(obj));
}
public static AuthenticatedSafe GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new AuthenticatedSafe(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
}
public static AuthenticatedSafe GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new AuthenticatedSafe(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
}
private AuthenticatedSafe(Asn1Sequence seq)
{
m_info = seq.MapElements(ContentInfo.GetInstance);
m_isBer = (seq is BerSequence);
}
public AuthenticatedSafe(ContentInfo[] info)
{
m_info = Copy(info);
m_isBer = true;
}
public ContentInfo[] GetContentInfo()
{
return Copy(m_info);
}
public override Asn1Object ToAsn1Object()
{
Asn1Encodable[] info;
if (!m_isBer) {
info = m_info;
return new DLSequence(info);
}
info = m_info;
return new BerSequence(info);
}
private static ContentInfo[] Copy(ContentInfo[] info)
{
return (ContentInfo[])info.Clone();
}
}
}