ArchiveTimeStampChain
using System;
namespace Org.BouncyCastle.Asn1.Tsp
{
public class ArchiveTimeStampChain : Asn1Encodable
{
private readonly Asn1Sequence m_archiveTimeStamps;
public static ArchiveTimeStampChain GetInstance(object obj)
{
if (obj == null)
return null;
ArchiveTimeStampChain archiveTimeStampChain = obj as ArchiveTimeStampChain;
if (archiveTimeStampChain != null)
return archiveTimeStampChain;
return new ArchiveTimeStampChain(Asn1Sequence.GetInstance(obj));
}
public static ArchiveTimeStampChain GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new ArchiveTimeStampChain(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
}
public static ArchiveTimeStampChain GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new ArchiveTimeStampChain(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
}
private ArchiveTimeStampChain(Asn1Sequence seq)
{
m_archiveTimeStamps = DerSequence.Map(seq, ArchiveTimeStamp.GetInstance);
}
public ArchiveTimeStampChain(ArchiveTimeStamp archiveTimeStamp)
{
m_archiveTimeStamps = new DerSequence(archiveTimeStamp);
}
public ArchiveTimeStampChain(ArchiveTimeStamp[] archiveTimeStamps)
{
m_archiveTimeStamps = DerSequence.FromElements(archiveTimeStamps);
}
public virtual ArchiveTimeStamp[] GetArchiveTimestamps()
{
return m_archiveTimeStamps.MapElements(ArchiveTimeStamp.GetInstance);
}
public virtual ArchiveTimeStampChain Append(ArchiveTimeStamp archiveTimeStamp)
{
if (archiveTimeStamp == null)
throw new ArgumentNullException("archiveTimeStamp");
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(m_archiveTimeStamps.Count + 1);
asn1EncodableVector.AddAll(m_archiveTimeStamps);
asn1EncodableVector.Add(archiveTimeStamp);
return new ArchiveTimeStampChain(new DerSequence(asn1EncodableVector));
}
public override Asn1Object ToAsn1Object()
{
return m_archiveTimeStamps;
}
}
}