using System; using Org.BouncyCastle.Utilities; namespace Org.BouncyCastle.Asn1.Crmf { public class PkiPublicationInfo : Asn1Encodable { private readonly DerInteger action; private readonly Asn1Sequence pubInfos; private PkiPublicationInfo(Asn1Sequence seq) { action = DerInteger.GetInstance(seq[0]); pubInfos = Asn1Sequence.GetInstance(seq[1]); } public static PkiPublicationInfo GetInstance(object obj) { if (obj is PkiPublicationInfo) return (PkiPublicationInfo)obj; if (obj is Asn1Sequence) return new PkiPublicationInfo((Asn1Sequence)obj); throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), "obj"); } public virtual DerInteger Action { get { return action; } } public virtual SinglePubInfo[] GetPubInfos() { if (pubInfos == null) return null; SinglePubInfo[] results = new SinglePubInfo[pubInfos.Count]; for (int i = 0; i != results.Length; ++i) { results[i] = SinglePubInfo.GetInstance(pubInfos[i]); } return results; } /** *
         * PkiPublicationInfo ::= SEQUENCE {
         *                  action     INTEGER {
         *                                 dontPublish (0),
         *                                 pleasePublish (1) },
         *                  pubInfos  SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
         * -- pubInfos MUST NOT be present if action is "dontPublish"
         * -- (if action is "pleasePublish" and pubInfos is omitted,
         * -- "dontCare" is assumed)
         * 
* @return a basic ASN.1 object representation. */ public override Asn1Object ToAsn1Object() { return new DerSequence(action, pubInfos); } } }