Bits.cs 883 B

123456789101112131415161718192021222324252627282930313233
  1. #if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
  2. #pragma warning disable
  3. using System;
  4. namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw
  5. {
  6. internal abstract class Bits
  7. {
  8. internal static uint BitPermuteStep(uint x, uint m, int s)
  9. {
  10. uint t = (x ^ (x >> s)) & m;
  11. return (t ^ (t << s)) ^ x;
  12. }
  13. internal static ulong BitPermuteStep(ulong x, ulong m, int s)
  14. {
  15. ulong t = (x ^ (x >> s)) & m;
  16. return (t ^ (t << s)) ^ x;
  17. }
  18. internal static uint BitPermuteStepSimple(uint x, uint m, int s)
  19. {
  20. return ((x & m) << s) | ((x >> s) & m);
  21. }
  22. internal static ulong BitPermuteStepSimple(ulong x, ulong m, int s)
  23. {
  24. return ((x & m) << s) | ((x >> s) & m);
  25. }
  26. }
  27. }
  28. #pragma warning restore
  29. #endif