using System; namespace Org.BouncyCastle.Asn1.X509 { /** * UserNotice class, used in * CertificatePolicies X509 extensions (in policy * qualifiers). *
     * UserNotice ::= Sequence {
     *      noticeRef        NoticeReference OPTIONAL,
     *      explicitText     DisplayText OPTIONAL}
     *
     * 
* * @see PolicyQualifierId * @see PolicyInformation */ public class UserNotice : Asn1Encodable { internal NoticeReference noticeRef; internal DisplayText explicitText; /** * Creates a new UserNotice instance. * * @param noticeRef a NoticeReference value * @param explicitText a DisplayText value */ public UserNotice( NoticeReference noticeRef, DisplayText explicitText) { this.noticeRef = noticeRef; this.explicitText = explicitText; } /** * Creates a new UserNotice instance. * * @param noticeRef a NoticeReference value * @param str the explicitText field as a string. */ public UserNotice( NoticeReference noticeRef, string str) { this.noticeRef = noticeRef; this.explicitText = new DisplayText(str); } /** * Creates a new UserNotice instance. *

Useful from reconstructing a UserNotice instance * from its encodable/encoded form. * * @param as an ASN1Sequence value obtained from either * calling @{link toASN1Object()} for a UserNotice * instance or from parsing it from a DER-encoded stream.

*/ public UserNotice( Asn1Sequence seq) { if (seq.Count == 2) { noticeRef = NoticeReference.GetInstance(seq[0]); explicitText = DisplayText.GetInstance(seq[1]); } else if (seq.Count == 1) { if (seq[0].ToAsn1Object() is Asn1Sequence) { noticeRef = NoticeReference.GetInstance(seq[0]); } else { explicitText = DisplayText.GetInstance(seq[0]); } } else { throw new ArgumentException("Bad sequence size: " + seq.Count); } } public override Asn1Object ToAsn1Object() { Asn1EncodableVector av = new Asn1EncodableVector(); if (noticeRef != null) { av.Add(noticeRef); } if (explicitText != null) { av.Add(explicitText); } return new DerSequence(av); } } }