X9IntegerConverter.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. using System;
  3. using Org.BouncyCastle.Math;
  4. using Org.BouncyCastle.Math.EC;
  5. namespace Org.BouncyCastle.Asn1.X9
  6. {
  7. public abstract class X9IntegerConverter
  8. {
  9. public static int GetByteLength(ECFieldElement fe)
  10. {
  11. return (fe.FieldSize + 7) / 8;
  12. }
  13. public static int GetByteLength(ECCurve c)
  14. {
  15. return (c.FieldSize + 7) / 8;
  16. }
  17. public static byte[] IntegerToBytes(BigInteger s, int qLength)
  18. {
  19. byte[] bytes = s.ToByteArrayUnsigned();
  20. if (qLength < bytes.Length)
  21. {
  22. byte[] tmp = new byte[qLength];
  23. Array.Copy(bytes, bytes.Length - tmp.Length, tmp, 0, tmp.Length);
  24. return tmp;
  25. }
  26. else if (qLength > bytes.Length)
  27. {
  28. byte[] tmp = new byte[qLength];
  29. Array.Copy(bytes, 0, tmp, tmp.Length - bytes.Length, bytes.Length);
  30. return tmp;
  31. }
  32. return bytes;
  33. }
  34. }
  35. }
  36. #endif