diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java
index db2f66c..d3d04db 100644
--- a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java
+++ b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java
@@ -454,7 +454,8 @@
         }
         */
         // END Android-removed: Unsupported modes
-        else if (modeName.startsWith("GCM"))
+        // Android-changed: Use equals instead of startsWith to not catch GCM-SIV
+        else if (modeName.equalsIgnoreCase("GCM"))
         {
             ivLength = baseEngine.getBlockSize();
             // BEGIN Android-removed: Unsupported algorithms
diff --git a/bcprov/src/main/java/org/bouncycastle/util/BigIntegers.java b/bcprov/src/main/java/org/bouncycastle/util/BigIntegers.java
index a118ba5..62be36e 100644
--- a/bcprov/src/main/java/org/bouncycastle/util/BigIntegers.java
+++ b/bcprov/src/main/java/org/bouncycastle/util/BigIntegers.java
@@ -141,6 +141,15 @@
         return new BigInteger(1, createRandom(bitLength, random));
     }
 
+    // Hexadecimal value of the product of the 131 smallest odd primes from 3 to 743
+    private static final BigInteger SMALL_PRIMES_PRODUCT = new BigInteger(
+              "8138e8a0fcf3a4e84a771d40fd305d7f4aa59306d7251de54d98af8fe95729a1f"
+            + "73d893fa424cd2edc8636a6c3285e022b0e3866a565ae8108eed8591cd4fe8d2"
+            + "ce86165a978d719ebf647f362d33fca29cd179fb42401cbaf3df0c614056f9c8"
+            + "f3cfd51e474afb6bc6974f78db8aba8e9e517fded658591ab7502bd41849462f",
+        16);
+    private static final int SQR_MAX_SMALL = 20; // bitlength of 743 * 743
+
     /**
      * Return a prime number candidate of the specified bit length.
      *
@@ -174,6 +183,13 @@
             base[base.length - 1] |= 0x01;
 
             rv = new BigInteger(1, base);
+            if (bitLength > SQR_MAX_SMALL)
+            {
+                while (!rv.gcd(SMALL_PRIMES_PRODUCT).equals(ONE))
+                {
+                    rv = rv.add(TWO);
+                }
+            }
         }
         while (!rv.isProbablePrime(certainty));
 
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/GeneralDigest.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/GeneralDigest.java
index 8071466..690c63d 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/GeneralDigest.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/GeneralDigest.java
@@ -156,7 +156,7 @@
     {
         return BYTE_LENGTH;
     }
-
+    
     protected abstract void processWord(byte[] in, int inOff);
 
     protected abstract void processLength(long bitLength);
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/SHA1Digest.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/SHA1Digest.java
index a101d40..78750ea 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/SHA1Digest.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/SHA1Digest.java
@@ -102,7 +102,7 @@
         if (++xOff == 16)
         {
             processBlock();
-        }
+        }        
     }
 
     protected void processLength(
@@ -162,7 +162,7 @@
     private static final int    Y2 = 0x6ed9eba1;
     private static final int    Y3 = 0x8f1bbcdc;
     private static final int    Y4 = 0xca62c1d6;
-
+   
     private int f(
         int    u,
         int    v,
@@ -211,27 +211,27 @@
         // round 1
         //
         int idx = 0;
-
+        
         for (int j = 0; j < 4; j++)
         {
             // E = rotateLeft(A, 5) + f(B, C, D) + E + X[idx++] + Y1
             // B = rotateLeft(B, 30)
             E += (A << 5 | A >>> 27) + f(B, C, D) + X[idx++] + Y1;
             B = B << 30 | B >>> 2;
-
+        
             D += (E << 5 | E >>> 27) + f(A, B, C) + X[idx++] + Y1;
             A = A << 30 | A >>> 2;
-
+       
             C += (D << 5 | D >>> 27) + f(E, A, B) + X[idx++] + Y1;
             E = E << 30 | E >>> 2;
-
+       
             B += (C << 5 | C >>> 27) + f(D, E, A) + X[idx++] + Y1;
             D = D << 30 | D >>> 2;
 
             A += (B << 5 | B >>> 27) + f(C, D, E) + X[idx++] + Y1;
             C = C << 30 | C >>> 2;
         }
-
+        
         //
         // round 2
         //
@@ -240,21 +240,21 @@
             // E = rotateLeft(A, 5) + h(B, C, D) + E + X[idx++] + Y2
             // B = rotateLeft(B, 30)
             E += (A << 5 | A >>> 27) + h(B, C, D) + X[idx++] + Y2;
-            B = B << 30 | B >>> 2;
-
+            B = B << 30 | B >>> 2;   
+            
             D += (E << 5 | E >>> 27) + h(A, B, C) + X[idx++] + Y2;
             A = A << 30 | A >>> 2;
-
+            
             C += (D << 5 | D >>> 27) + h(E, A, B) + X[idx++] + Y2;
             E = E << 30 | E >>> 2;
-
+            
             B += (C << 5 | C >>> 27) + h(D, E, A) + X[idx++] + Y2;
             D = D << 30 | D >>> 2;
 
             A += (B << 5 | B >>> 27) + h(C, D, E) + X[idx++] + Y2;
             C = C << 30 | C >>> 2;
         }
-
+        
         //
         // round 3
         //
@@ -264,13 +264,13 @@
             // B = rotateLeft(B, 30)
             E += (A << 5 | A >>> 27) + g(B, C, D) + X[idx++] + Y3;
             B = B << 30 | B >>> 2;
-
+            
             D += (E << 5 | E >>> 27) + g(A, B, C) + X[idx++] + Y3;
             A = A << 30 | A >>> 2;
-
+            
             C += (D << 5 | D >>> 27) + g(E, A, B) + X[idx++] + Y3;
             E = E << 30 | E >>> 2;
-
+            
             B += (C << 5 | C >>> 27) + g(D, E, A) + X[idx++] + Y3;
             D = D << 30 | D >>> 2;
 
@@ -287,13 +287,13 @@
             // B = rotateLeft(B, 30)
             E += (A << 5 | A >>> 27) + h(B, C, D) + X[idx++] + Y4;
             B = B << 30 | B >>> 2;
-
+            
             D += (E << 5 | E >>> 27) + h(A, B, C) + X[idx++] + Y4;
             A = A << 30 | A >>> 2;
-
+            
             C += (D << 5 | D >>> 27) + h(E, A, B) + X[idx++] + Y4;
             E = E << 30 | E >>> 2;
-
+            
             B += (C << 5 | C >>> 27) + h(D, E, A) + X[idx++] + Y4;
             D = D << 30 | D >>> 2;
 
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java
index 5c29fae..1351477 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java
@@ -458,7 +458,8 @@
         }
         */
         // END Android-removed: Unsupported modes
-        else if (modeName.startsWith("GCM"))
+        // Android-changed: Use equals instead of startsWith to not catch GCM-SIV
+        else if (modeName.equalsIgnoreCase("GCM"))
         {
             ivLength = baseEngine.getBlockSize();
             // BEGIN Android-removed: Unsupported algorithms
diff --git a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/BigIntegers.java b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/BigIntegers.java
index fe7dbb8..93e1a77 100644
--- a/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/BigIntegers.java
+++ b/repackaged/bcprov/src/main/java/com/android/org/bouncycastle/util/BigIntegers.java
@@ -143,6 +143,15 @@
         return new BigInteger(1, createRandom(bitLength, random));
     }
 
+    // Hexadecimal value of the product of the 131 smallest odd primes from 3 to 743
+    private static final BigInteger SMALL_PRIMES_PRODUCT = new BigInteger(
+              "8138e8a0fcf3a4e84a771d40fd305d7f4aa59306d7251de54d98af8fe95729a1f"
+            + "73d893fa424cd2edc8636a6c3285e022b0e3866a565ae8108eed8591cd4fe8d2"
+            + "ce86165a978d719ebf647f362d33fca29cd179fb42401cbaf3df0c614056f9c8"
+            + "f3cfd51e474afb6bc6974f78db8aba8e9e517fded658591ab7502bd41849462f",
+        16);
+    private static final int SQR_MAX_SMALL = 20; // bitlength of 743 * 743
+
     /**
      * Return a prime number candidate of the specified bit length.
      *
@@ -176,6 +185,13 @@
             base[base.length - 1] |= 0x01;
 
             rv = new BigInteger(1, base);
+            if (bitLength > SQR_MAX_SMALL)
+            {
+                while (!rv.gcd(SMALL_PRIMES_PRODUCT).equals(ONE))
+                {
+                    rv = rv.add(TWO);
+                }
+            }
         }
         while (!rv.isProbablePrime(certainty));
 
diff --git a/srcgen/core-platform-api.txt b/srcgen/core-platform-api.txt
index 586bfa9..62c754b 100644
--- a/srcgen/core-platform-api.txt
+++ b/srcgen/core-platform-api.txt
@@ -78,8 +78,8 @@
 method:com.android.org.bouncycastle.crypto.digests.GeneralDigest#finish()
 method:com.android.org.bouncycastle.crypto.digests.GeneralDigest#processBlock()
 method:com.android.org.bouncycastle.crypto.digests.GeneralDigest#update(byte[],int,int)
-method:com.android.org.bouncycastle.crypto.digests.Sha1Digest#init()
-method:com.android.org.bouncycastle.crypto.digests.Sha1Digest#doFinal(byte[],int)
+method:com.android.org.bouncycastle.crypto.digests.SHA1Digest#SHA1Digest()
+method:com.android.org.bouncycastle.crypto.digests.SHA1Digest#doFinal(byte[],int)
 method:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator#generateDerivedParameters(int)
 method:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator#init(byte[],byte[])
 method:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator#OpenSSLPBEParametersGenerator()
@@ -152,7 +152,7 @@
 type:com.android.org.bouncycastle.asn1.x9.X9ObjectIdentifiers
 type:com.android.org.bouncycastle.crypto.CipherParameters
 type:com.android.org.bouncycastle.crypto.digests.GeneralDigest
-type:com.android.org.bouncycastle.crypto.digests.Sha1Digest
+type:com.android.org.bouncycastle.crypto.digests.SHA1Digest
 type:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator
 type:com.android.org.bouncycastle.crypto.params.KeyParameter
 type:com.android.org.bouncycastle.crypto.PBEParametersGenerator
