<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" />

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(); } } }