<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

MetaData

public class MetaData : Asn1Encodable
using System; namespace Org.BouncyCastle.Asn1.Cms { public class MetaData : Asn1Encodable { private readonly DerBoolean m_hashProtected; private readonly DerUtf8String m_fileName; private readonly DerIA5String m_mediaType; private readonly Attributes m_otherMetaData; public virtual bool IsHashProtected => m_hashProtected.IsTrue; public virtual DerUtf8String FileName => m_fileName; public virtual DerIA5String MediaType => m_mediaType; public virtual Attributes OtherMetaData => m_otherMetaData; public static MetaData GetInstance(object obj) { if (obj == null) return null; MetaData metaData = obj as MetaData; if (metaData != null) return metaData; return new MetaData(Asn1Sequence.GetInstance(obj)); } public static MetaData GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new MetaData(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static MetaData GetOptional(Asn1Encodable element) { if (element == null) throw new ArgumentNullException("element"); MetaData metaData = element as MetaData; if (metaData != null) return metaData; Asn1Sequence optional = Asn1Sequence.GetOptional(element); if (optional != null) return new MetaData(optional); return null; } public static MetaData GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new MetaData(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } public MetaData(DerBoolean hashProtected, DerUtf8String fileName, DerIA5String mediaType, Attributes otherMetaData) { if (hashProtected == null) throw new ArgumentNullException("hashProtected"); m_hashProtected = hashProtected; m_fileName = fileName; m_mediaType = mediaType; m_otherMetaData = otherMetaData; } private MetaData(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 1 || count > 4) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_hashProtected = DerBoolean.GetInstance(seq[sequencePosition++]); m_fileName = Asn1Utilities.ReadOptional(seq, ref sequencePosition, DerUtf8String.GetOptional); m_mediaType = Asn1Utilities.ReadOptional(seq, ref sequencePosition, DerIA5String.GetOptional); m_otherMetaData = Asn1Utilities.ReadOptional(seq, ref sequencePosition, Attributes.GetOptional); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(4); asn1EncodableVector.Add(m_hashProtected); asn1EncodableVector.AddOptional(m_fileName, m_mediaType, m_otherMetaData); return new DerSequence(asn1EncodableVector); } } }