summary refs log tree commit diff
path: root/crypto/src/util/Longs.cs
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2022-08-26 12:13:11 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2022-08-26 12:13:11 +0700
commit335839d58ab12a9398b3883454008b273005ad52 (patch)
tree5164633cf406e424c19cff27ffcc62ee65cec571 /crypto/src/util/Longs.cs
parentConst-time padding improvements (diff)
downloadBouncyCastle.NET-ed25519-335839d58ab12a9398b3883454008b273005ad52.tar.xz
Handle zero-distance rotates correctly
Diffstat (limited to 'crypto/src/util/Longs.cs')
-rw-r--r--crypto/src/util/Longs.cs8
1 files changed, 4 insertions, 4 deletions
diff --git a/crypto/src/util/Longs.cs b/crypto/src/util/Longs.cs
index 0bb35de25..9e34dab99 100644
--- a/crypto/src/util/Longs.cs
+++ b/crypto/src/util/Longs.cs
@@ -112,7 +112,7 @@ namespace Org.BouncyCastle.Utilities
 #if NETCOREAPP3_0_OR_GREATER
             return (long)BitOperations.RotateLeft((ulong)i, distance);
 #else
-            return (i << distance) ^ (long)((ulong)i >> -distance);
+            return (i << distance) | (long)((ulong)i >> -distance);
 #endif
         }
 
@@ -122,7 +122,7 @@ namespace Org.BouncyCastle.Utilities
 #if NETCOREAPP3_0_OR_GREATER
             return BitOperations.RotateLeft(i, distance);
 #else
-            return (i << distance) ^ (i >> -distance);
+            return (i << distance) | (i >> -distance);
 #endif
         }
 
@@ -131,7 +131,7 @@ namespace Org.BouncyCastle.Utilities
 #if NETCOREAPP3_0_OR_GREATER
             return (long)BitOperations.RotateRight((ulong)i, distance);
 #else
-            return (long)((ulong)i >> distance) ^ (i << -distance);
+            return (long)((ulong)i >> distance) | (i << -distance);
 #endif
         }
 
@@ -141,7 +141,7 @@ namespace Org.BouncyCastle.Utilities
 #if NETCOREAPP3_0_OR_GREATER
             return BitOperations.RotateRight(i, distance);
 #else
-            return (i >> distance) ^ (i << -distance);
+            return (i >> distance) | (i << -distance);
 #endif
         }
     }