| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
- #pragma warning disable
- using System;
- using System.Collections;
- using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
- namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509
- {
- /**
- * The extendedKeyUsage object.
- * <pre>
- * extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
- * </pre>
- */
- public class ExtendedKeyUsage
- : Asn1Encodable
- {
- internal readonly IDictionary usageTable = BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.CreateHashtable();
- internal readonly Asn1Sequence seq;
- public static ExtendedKeyUsage GetInstance(
- Asn1TaggedObject obj,
- bool explicitly)
- {
- return GetInstance(Asn1Sequence.GetInstance(obj, explicitly));
- }
- public static ExtendedKeyUsage GetInstance(
- object obj)
- {
- if (obj is ExtendedKeyUsage)
- {
- return (ExtendedKeyUsage) obj;
- }
- if (obj is Asn1Sequence)
- {
- return new ExtendedKeyUsage((Asn1Sequence) obj);
- }
- if (obj is X509Extension)
- {
- return GetInstance(X509Extension.ConvertValueToObject((X509Extension) obj));
- }
- throw new ArgumentException("Invalid ExtendedKeyUsage: " + BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.GetTypeName(obj));
- }
- private ExtendedKeyUsage(
- Asn1Sequence seq)
- {
- this.seq = seq;
- foreach (object o in seq)
- {
- if (!(o is DerObjectIdentifier))
- throw new ArgumentException("Only DerObjectIdentifier instances allowed in ExtendedKeyUsage.");
- this.usageTable[o] = o;
- }
- }
- public ExtendedKeyUsage(
- params KeyPurposeID[] usages)
- {
- this.seq = new DerSequence(usages);
- foreach (KeyPurposeID usage in usages)
- {
- this.usageTable[usage] = usage;
- }
- }
- #if !(SILVERLIGHT || PORTABLE || NETFX_CORE)
- [Obsolete]
- public ExtendedKeyUsage(
- ArrayList usages)
- : this((IEnumerable)usages)
- {
- }
- #endif
- public ExtendedKeyUsage(
- IEnumerable usages)
- {
- Asn1EncodableVector v = new Asn1EncodableVector();
- foreach (object usage in usages)
- {
- Asn1Encodable o = KeyPurposeID.GetInstance(usage);
- v.Add(o);
- this.usageTable[o] = o;
- }
- this.seq = new DerSequence(v);
- }
- public bool HasKeyPurposeId(
- KeyPurposeID keyPurposeId)
- {
- return usageTable.Contains(keyPurposeId);
- }
- #if !(SILVERLIGHT || PORTABLE || NETFX_CORE)
- [Obsolete("Use 'GetAllUsages'")]
- public ArrayList GetUsages()
- {
- return new ArrayList(usageTable.Values);
- }
- #endif
- /**
- * Returns all extended key usages.
- * The returned ArrayList contains DerObjectIdentifier instances.
- * @return An ArrayList with all key purposes.
- */
- public IList GetAllUsages()
- {
- return BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.CreateArrayList(usageTable.Values);
- }
- public int Count
- {
- get { return usageTable.Count; }
- }
- public override Asn1Object ToAsn1Object()
- {
- return seq;
- }
- }
- }
- #pragma warning restore
- #endif
|