123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509
- {
- /**
- * <code>UserNotice</code> class, used in
- * <code>CertificatePolicies</code> X509 extensions (in policy
- * qualifiers).
- * <pre>
- * UserNotice ::= Sequence {
- * noticeRef NoticeReference OPTIONAL,
- * explicitText DisplayText OPTIONAL}
- *
- * </pre>
- *
- * @see PolicyQualifierId
- * @see PolicyInformation
- */
- public class UserNotice
- : Asn1Encodable
- {
- private readonly NoticeReference noticeRef;
- private readonly DisplayText explicitText;
- /**
- * Creates a new <code>UserNotice</code> instance.
- *
- * @param noticeRef a <code>NoticeReference</code> value
- * @param explicitText a <code>DisplayText</code> value
- */
- public UserNotice(
- NoticeReference noticeRef,
- DisplayText explicitText)
- {
- this.noticeRef = noticeRef;
- this.explicitText = explicitText;
- }
- /**
- * Creates a new <code>UserNotice</code> instance.
- *
- * @param noticeRef a <code>NoticeReference</code> value
- * @param str the explicitText field as a string.
- */
- public UserNotice(
- NoticeReference noticeRef,
- string str)
- : this(noticeRef, new DisplayText(str))
- {
- }
- /**
- * Creates a new <code>UserNotice</code> instance.
- * <p>Useful from reconstructing a <code>UserNotice</code> instance
- * from its encodable/encoded form.
- *
- * @param as an <code>ASN1Sequence</code> value obtained from either
- * calling @{link toASN1Object()} for a <code>UserNotice</code>
- * instance or from parsing it from a DER-encoded stream.</p>
- */
- 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]);
- explicitText = null;
- }
- else
- {
- noticeRef = null;
- explicitText = DisplayText.GetInstance(seq[0]);
- }
- }
- else if (seq.Count == 0)
- {
- noticeRef = null; // neither field set!
- explicitText = null;
- }
- else
- {
- throw new ArgumentException("Bad sequence size: " + seq.Count);
- }
- }
- public static UserNotice GetInstance(object obj)
- {
- if (obj is UserNotice)
- return (UserNotice)obj;
- if (obj == null)
- return null;
- return new UserNotice(Asn1Sequence.GetInstance(obj));
- }
- public virtual NoticeReference NoticeRef
- {
- get { return noticeRef; }
- }
- public virtual DisplayText ExplicitText
- {
- get { return explicitText; }
- }
- public override Asn1Object ToAsn1Object()
- {
- Asn1EncodableVector v = new Asn1EncodableVector();
- v.AddOptional(noticeRef, explicitText);
- return new DerSequence(v);
- }
- }
- }
- #pragma warning restore
- #endif
|