CRLDistPoint.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using System.Text;
  5. using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
  6. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509
  7. {
  8. public class CrlDistPoint
  9. : Asn1Encodable
  10. {
  11. public static CrlDistPoint GetInstance(Asn1TaggedObject obj, bool explicitly)
  12. {
  13. return GetInstance(Asn1Sequence.GetInstance(obj, explicitly));
  14. }
  15. public static CrlDistPoint GetInstance(object obj)
  16. {
  17. if (obj is CrlDistPoint)
  18. return (CrlDistPoint)obj;
  19. if (obj == null)
  20. return null;
  21. return new CrlDistPoint(Asn1Sequence.GetInstance(obj));
  22. }
  23. public static CrlDistPoint FromExtensions(X509Extensions extensions)
  24. {
  25. return GetInstance(X509Extensions.GetExtensionParsedValue(extensions, X509Extensions.CrlDistributionPoints));
  26. }
  27. internal readonly Asn1Sequence seq;
  28. private CrlDistPoint(
  29. Asn1Sequence seq)
  30. {
  31. this.seq = seq;
  32. }
  33. public CrlDistPoint(
  34. DistributionPoint[] points)
  35. {
  36. seq = new DerSequence(points);
  37. }
  38. /**
  39. * Return the distribution points making up the sequence.
  40. *
  41. * @return DistributionPoint[]
  42. */
  43. public DistributionPoint[] GetDistributionPoints()
  44. {
  45. DistributionPoint[] dp = new DistributionPoint[seq.Count];
  46. for (int i = 0; i != seq.Count; ++i)
  47. {
  48. dp[i] = DistributionPoint.GetInstance(seq[i]);
  49. }
  50. return dp;
  51. }
  52. /**
  53. * Produce an object suitable for an Asn1OutputStream.
  54. * <pre>
  55. * CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
  56. * </pre>
  57. */
  58. public override Asn1Object ToAsn1Object()
  59. {
  60. return seq;
  61. }
  62. public override string ToString()
  63. {
  64. StringBuilder buf = new StringBuilder();
  65. string sep = BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.NewLine;
  66. buf.Append("CRLDistPoint:");
  67. buf.Append(sep);
  68. DistributionPoint[] dp = GetDistributionPoints();
  69. for (int i = 0; i != dp.Length; i++)
  70. {
  71. buf.Append(" ");
  72. buf.Append(dp[i]);
  73. buf.Append(sep);
  74. }
  75. return buf.ToString();
  76. }
  77. }
  78. }
  79. #pragma warning restore
  80. #endif