From 3fe6af3940d17c6a8c7d69c322497fb1c3d5ef1a Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Thu, 2 Mar 2023 22:40:06 +0700 Subject: Add ShiftDownBits64 --- crypto/src/math/raw/Nat.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'crypto/src/math/raw') diff --git a/crypto/src/math/raw/Nat.cs b/crypto/src/math/raw/Nat.cs index 1d08b6d92..61d060b4e 100644 --- a/crypto/src/math/raw/Nat.cs +++ b/crypto/src/math/raw/Nat.cs @@ -1582,6 +1582,19 @@ namespace Org.BouncyCastle.Math.Raw } #endif + public static ulong ShiftDownBits64(int len, ulong[] z, int zOff, int bits, ulong c) + { + Debug.Assert(bits > 0 && bits < 64); + int i = len; + while (--i >= 0) + { + ulong next = z[zOff + i]; + z[zOff + i] = (next >> bits) | (c << -bits); + c = next; + } + return c << -bits; + } + public static uint ShiftDownWord(int len, uint[] z, uint c) { int i = len; -- cgit 1.5.1