DHParameter.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
  4. using System;
  5. using System.Collections;
  6. using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
  7. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Pkcs
  8. {
  9. public class DHParameter
  10. : Asn1Encodable
  11. {
  12. internal DerInteger p, g, l;
  13. public DHParameter(
  14. BigInteger p,
  15. BigInteger g,
  16. int l)
  17. {
  18. this.p = new DerInteger(p);
  19. this.g = new DerInteger(g);
  20. if (l != 0)
  21. {
  22. this.l = new DerInteger(l);
  23. }
  24. }
  25. public DHParameter(
  26. Asn1Sequence seq)
  27. {
  28. IEnumerator e = seq.GetEnumerator();
  29. e.MoveNext();
  30. p = (DerInteger)e.Current;
  31. e.MoveNext();
  32. g = (DerInteger)e.Current;
  33. if (e.MoveNext())
  34. {
  35. l = (DerInteger) e.Current;
  36. }
  37. }
  38. public BigInteger P
  39. {
  40. get { return p.PositiveValue; }
  41. }
  42. public BigInteger G
  43. {
  44. get { return g.PositiveValue; }
  45. }
  46. public BigInteger L
  47. {
  48. get { return l == null ? null : l.PositiveValue; }
  49. }
  50. public override Asn1Object ToAsn1Object()
  51. {
  52. Asn1EncodableVector v = new Asn1EncodableVector(p, g);
  53. v.AddOptional(l);
  54. return new DerSequence(v);
  55. }
  56. }
  57. }
  58. #pragma warning restore
  59. #endif