OriginatorId.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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.Math;
  6. using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
  7. using BestHTTP.SecureProtocol.Org.BouncyCastle.X509.Store;
  8. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Cms
  9. {
  10. /**
  11. * a basic index for an originator.
  12. */
  13. public class OriginatorID
  14. : X509CertStoreSelector
  15. {
  16. public override int GetHashCode()
  17. {
  18. int code = Arrays.GetHashCode(this.SubjectKeyIdentifier);
  19. BigInteger serialNumber = this.SerialNumber;
  20. if (serialNumber != null)
  21. {
  22. code ^= serialNumber.GetHashCode();
  23. }
  24. X509Name issuer = this.Issuer;
  25. if (issuer != null)
  26. {
  27. code ^= issuer.GetHashCode();
  28. }
  29. return code;
  30. }
  31. public override bool Equals(
  32. object obj)
  33. {
  34. if (obj == this)
  35. return false;
  36. OriginatorID id = obj as OriginatorID;
  37. if (id == null)
  38. return false;
  39. return Arrays.AreEqual(SubjectKeyIdentifier, id.SubjectKeyIdentifier)
  40. && BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Platform.Equals(SerialNumber, id.SerialNumber)
  41. && IssuersMatch(Issuer, id.Issuer);
  42. }
  43. }
  44. }
  45. #pragma warning restore
  46. #endif