diff options
author | Adam Vartanian <flooey@google.com> | 2019-02-14 14:42:19 +0000 |
---|---|---|
committer | Adam Vartanian <flooey@google.com> | 2019-02-18 10:18:52 +0000 |
commit | 27254450f01adef5f4bb25a648d42eeacc14c438 (patch) | |
tree | 90eb8fa6c24a44780cc4c4be2d50555f955d29f4 /repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines | |
parent | bdfb209e7c1139588c82722a809c46667775a314 (diff) | |
parent | 1b335c5efbcf241b55345622fe9978047c3fdf9e (diff) | |
download | bouncycastle-27254450f01adef5f4bb25a648d42eeacc14c438.tar.gz |
Update Bouncy Castle to 1.61
Test: cts -m CtsLibcoreTestCases
Test: cts -m CtsLibcoreWycheproofBCTestCases
Change-Id: Ifcd182a8537439b945aedf80741bd51cbce37e49
Diffstat (limited to 'repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines')
4 files changed, 28 insertions, 28 deletions
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/DESEngine.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/DESEngine.java index e9224563..7d117105 100644 --- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/DESEngine.java +++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/DESEngine.java @@ -6,6 +6,7 @@ import com.android.org.bouncycastle.crypto.CipherParameters; import com.android.org.bouncycastle.crypto.DataLengthException; import com.android.org.bouncycastle.crypto.OutputLengthException; import com.android.org.bouncycastle.crypto.params.KeyParameter; +import com.android.org.bouncycastle.util.Pack; /** * a class that provides a basic DES engine. @@ -409,15 +410,8 @@ public class DESEngine { int work, right, left; - left = (in[inOff + 0] & 0xff) << 24; - left |= (in[inOff + 1] & 0xff) << 16; - left |= (in[inOff + 2] & 0xff) << 8; - left |= (in[inOff + 3] & 0xff); - - right = (in[inOff + 4] & 0xff) << 24; - right |= (in[inOff + 5] & 0xff) << 16; - right |= (in[inOff + 6] & 0xff) << 8; - right |= (in[inOff + 7] & 0xff); + left = Pack.bigEndianToInt(in, inOff); + right = Pack.bigEndianToInt(in, inOff + 4); work = ((left >>> 4) ^ right) & 0x0f0f0f0f; right ^= work; @@ -431,11 +425,11 @@ public class DESEngine work = ((right >>> 8) ^ left) & 0x00ff00ff; left ^= work; right ^= (work << 8); - right = ((right << 1) | ((right >>> 31) & 1)) & 0xffffffff; + right = (right << 1) | (right >>> 31); work = (left ^ right) & 0xaaaaaaaa; left ^= work; right ^= work; - left = ((left << 1) | ((left >>> 31) & 1)) & 0xffffffff; + left = (left << 1) | (left >>> 31); for (int round = 0; round < 8; round++) { @@ -485,13 +479,7 @@ public class DESEngine left ^= work; right ^= (work << 4); - out[outOff + 0] = (byte)((right >>> 24) & 0xff); - out[outOff + 1] = (byte)((right >>> 16) & 0xff); - out[outOff + 2] = (byte)((right >>> 8) & 0xff); - out[outOff + 3] = (byte)(right & 0xff); - out[outOff + 4] = (byte)((left >>> 24) & 0xff); - out[outOff + 5] = (byte)((left >>> 16) & 0xff); - out[outOff + 6] = (byte)((left >>> 8) & 0xff); - out[outOff + 7] = (byte)(left & 0xff); + Pack.intToBigEndian(right, out, outOff); + Pack.intToBigEndian(left, out, outOff + 4); } } diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/DESedeWrapEngine.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/DESedeWrapEngine.java index c12a41ba..f9b3de75 100644 --- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/DESedeWrapEngine.java +++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/DESedeWrapEngine.java @@ -4,6 +4,7 @@ package com.android.org.bouncycastle.crypto.engines; import java.security.SecureRandom; import com.android.org.bouncycastle.crypto.CipherParameters; +import com.android.org.bouncycastle.crypto.CryptoServicesRegistrar; import com.android.org.bouncycastle.crypto.Digest; import com.android.org.bouncycastle.crypto.InvalidCipherTextException; import com.android.org.bouncycastle.crypto.Wrapper; @@ -81,7 +82,7 @@ public class DESedeWrapEngine } else { - sr = new SecureRandom(); + sr = CryptoServicesRegistrar.getSecureRandom(); } if (param instanceof KeyParameter) diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/RSABlindedEngine.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/RSABlindedEngine.java index 4aefc36e..3e89d400 100644 --- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/RSABlindedEngine.java +++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/RSABlindedEngine.java @@ -6,6 +6,7 @@ import java.security.SecureRandom; import com.android.org.bouncycastle.crypto.AsymmetricBlockCipher; import com.android.org.bouncycastle.crypto.CipherParameters; +import com.android.org.bouncycastle.crypto.CryptoServicesRegistrar; import com.android.org.bouncycastle.crypto.DataLengthException; import com.android.org.bouncycastle.crypto.params.ParametersWithRandom; import com.android.org.bouncycastle.crypto.params.RSAKeyParameters; @@ -47,7 +48,7 @@ public class RSABlindedEngine else { key = (RSAKeyParameters)param; - random = new SecureRandom(); + random = CryptoServicesRegistrar.getSecureRandom(); } } diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/RSACoreEngine.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/RSACoreEngine.java index 36fba5ec..66ae3b72 100644 --- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/RSACoreEngine.java +++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/engines/RSACoreEngine.java @@ -1,13 +1,14 @@ /* GENERATED SOURCE. DO NOT MODIFY. */ package com.android.org.bouncycastle.crypto.engines; +import java.math.BigInteger; + import com.android.org.bouncycastle.crypto.CipherParameters; import com.android.org.bouncycastle.crypto.DataLengthException; import com.android.org.bouncycastle.crypto.params.ParametersWithRandom; import com.android.org.bouncycastle.crypto.params.RSAKeyParameters; import com.android.org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters; - -import java.math.BigInteger; +import com.android.org.bouncycastle.util.Arrays; /** * this does your basic RSA algorithm. @@ -143,20 +144,29 @@ class RSACoreEngine return tmp; } + + return output; } else { + byte[] rv; if (output[0] == 0) // have ended up with an extra zero byte, copy down. { - byte[] tmp = new byte[output.length - 1]; + rv = new byte[output.length - 1]; - System.arraycopy(output, 1, tmp, 0, tmp.length); + System.arraycopy(output, 1, rv, 0, rv.length); + } + else // maintain decryption time + { + rv = new byte[output.length]; - return tmp; + System.arraycopy(output, 0, rv, 0, rv.length); } - } - return output; + Arrays.fill(output, (byte)0); + + return rv; + } } public BigInteger processBlock(BigInteger input) |