Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Asn1/Cms/TimeStampedData.cs
2025-10-09 09:57:24 +09:00

72 lines
1.7 KiB
C#

namespace Org.BouncyCastle.Asn1.Cms;
public class TimeStampedData : Asn1Encodable
{
private DerInteger version;
private DerIA5String dataUri;
private MetaData metaData;
private Asn1OctetString content;
private Evidence temporalEvidence;
public virtual DerIA5String DataUri => dataUri;
public MetaData MetaData => metaData;
public Asn1OctetString Content => content;
public Evidence TemporalEvidence => temporalEvidence;
public TimeStampedData(DerIA5String dataUri, MetaData metaData, Asn1OctetString content, Evidence temporalEvidence)
{
version = new DerInteger(1);
this.dataUri = dataUri;
this.metaData = metaData;
this.content = content;
this.temporalEvidence = temporalEvidence;
}
private TimeStampedData(Asn1Sequence seq)
{
version = DerInteger.GetInstance(seq[0]);
int index = 1;
if (seq[index] is DerIA5String)
{
dataUri = DerIA5String.GetInstance(seq[index++]);
}
if (seq[index] is MetaData || seq[index] is Asn1Sequence)
{
metaData = MetaData.GetInstance(seq[index++]);
}
if (seq[index] is Asn1OctetString)
{
content = Asn1OctetString.GetInstance(seq[index++]);
}
temporalEvidence = Evidence.GetInstance(seq[index]);
}
public static TimeStampedData GetInstance(object obj)
{
if (obj is TimeStampedData)
{
return (TimeStampedData)obj;
}
if (obj != null)
{
return new TimeStampedData(Asn1Sequence.GetInstance(obj));
}
return null;
}
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(version);
asn1EncodableVector.AddOptional(dataUri, metaData, content);
asn1EncodableVector.Add(temporalEvidence);
return new BerSequence(asn1EncodableVector);
}
}