Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/java/org/bouncycastle/math/ec/LongArray.java22
1 files changed, 6 insertions, 16 deletions
diff --git a/core/src/main/java/org/bouncycastle/math/ec/LongArray.java b/core/src/main/java/org/bouncycastle/math/ec/LongArray.java
index 5cc48947..ad3e6225 100644
--- a/core/src/main/java/org/bouncycastle/math/ec/LongArray.java
+++ b/core/src/main/java/org/bouncycastle/math/ec/LongArray.java
@@ -678,28 +678,18 @@ class LongArray
while (pos < _2len)
{
long mi = m_ints[pos >>> 1];
-
- {
- int mi00 = (int)mi;
- int r00 = square16(mi00 & 0xFFFF);
- int r32 = square16(mi00 >>> 16);
- r[pos++] = (r32 & 0xFFFFFFFFL) << 32 | (r00 & 0xFFFFFFFFL);
- }
-
- {
- int mi32 = (int)(mi >>> 32);
- int r00 = square16(mi32 & 0xFFFF);
- int r32 = square16(mi32 >>> 16);
- r[pos++] = (r32 & 0xFFFFFFFFL) << 32 | (r00 & 0xFFFFFFFFL);
- }
+ r[pos++] = square32((int)mi);
+ r[pos++] = square32((int)(mi >>> 32));
}
return new LongArray(r);
}
- private static int square16(int n)
+ private static long square32(int n)
{
- return EXPANSION_TABLE[n & 0xFF] | EXPANSION_TABLE[n >>> 8] << 16;
+ int r00 = EXPANSION_TABLE[n & 0xFF] | EXPANSION_TABLE[(n >>> 8) & 0xFF] << 16;
+ int r32 = EXPANSION_TABLE[(n >>> 16) & 0xFF] | EXPANSION_TABLE[(n >>> 24) & 0xFF] << 16;
+ return (r32 & 0xFFFFFFFFL) << 32 | (r00 & 0xFFFFFFFFL);
}
public LongArray modInverse(int m, int[] ks)