ESSCertID.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
  5. using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
  6. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Ess
  7. {
  8. public class EssCertID
  9. : Asn1Encodable
  10. {
  11. private Asn1OctetString certHash;
  12. private IssuerSerial issuerSerial;
  13. public static EssCertID GetInstance(
  14. object o)
  15. {
  16. if (o == null || o is EssCertID)
  17. {
  18. return (EssCertID) o;
  19. }
  20. if (o is Asn1Sequence)
  21. {
  22. return new EssCertID((Asn1Sequence) o);
  23. }
  24. throw new ArgumentException(
  25. "unknown object in 'EssCertID' factory : "
  26. + BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.GetTypeName(o) + ".");
  27. }
  28. /**
  29. * constructor
  30. */
  31. public EssCertID(
  32. Asn1Sequence seq)
  33. {
  34. if (seq.Count < 1 || seq.Count > 2)
  35. {
  36. throw new ArgumentException("Bad sequence size: " + seq.Count);
  37. }
  38. this.certHash = Asn1OctetString.GetInstance(seq[0]);
  39. if (seq.Count > 1)
  40. {
  41. issuerSerial = IssuerSerial.GetInstance(seq[1]);
  42. }
  43. }
  44. public EssCertID(
  45. byte[] hash)
  46. {
  47. certHash = new DerOctetString(hash);
  48. }
  49. public EssCertID(
  50. byte[] hash,
  51. IssuerSerial issuerSerial)
  52. {
  53. this.certHash = new DerOctetString(hash);
  54. this.issuerSerial = issuerSerial;
  55. }
  56. public byte[] GetCertHash()
  57. {
  58. return certHash.GetOctets();
  59. }
  60. public IssuerSerial IssuerSerial
  61. {
  62. get { return issuerSerial; }
  63. }
  64. /**
  65. * <pre>
  66. * EssCertID ::= SEQUENCE {
  67. * certHash Hash,
  68. * issuerSerial IssuerSerial OPTIONAL }
  69. * </pre>
  70. */
  71. public override Asn1Object ToAsn1Object()
  72. {
  73. Asn1EncodableVector v = new Asn1EncodableVector(certHash);
  74. v.AddOptional(issuerSerial);
  75. return new DerSequence(v);
  76. }
  77. }
  78. }
  79. #pragma warning restore
  80. #endif