summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/GeneralDigest.java6
-rw-r--r--repackaged/bcprov/src/main/java/com/android/org/bouncycastle/crypto/digests/SHA1Digest.java39
-rw-r--r--srcgen/core-platform-api.txt7
3 files changed, 33 insertions, 19 deletions
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 c075dce5..80714665 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
@@ -10,6 +10,7 @@ import com.android.org.bouncycastle.util.Pack;
* "Handbook of Applied Cryptography", pages 344 - 347.
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public abstract class GeneralDigest
implements ExtendedDigest, Memoable
{
@@ -67,6 +68,7 @@ public abstract class GeneralDigest
byteCount++;
}
+ @libcore.api.CorePlatformApi
public void update(
byte[] in,
int inOff,
@@ -112,6 +114,7 @@ public abstract class GeneralDigest
byteCount += len;
}
+ @libcore.api.CorePlatformApi
public void finish()
{
long bitLength = (byteCount << 3);
@@ -153,10 +156,11 @@ public abstract class GeneralDigest
{
return BYTE_LENGTH;
}
-
+
protected abstract void processWord(byte[] in, int inOff);
protected abstract void processLength(long bitLength);
+ @libcore.api.CorePlatformApi
protected abstract void processBlock();
}
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 ebc5bfe4..a101d405 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
@@ -11,6 +11,7 @@ import com.android.org.bouncycastle.util.Pack;
* is the "endianness" of the word processing!
* @hide This class is not part of the Android public SDK API
*/
+@libcore.api.CorePlatformApi
public class SHA1Digest
extends GeneralDigest
implements EncodableDigest
@@ -25,6 +26,7 @@ public class SHA1Digest
/**
* Standard constructor
*/
+ @libcore.api.CorePlatformApi
public SHA1Digest()
{
reset();
@@ -100,7 +102,7 @@ public class SHA1Digest
if (++xOff == 16)
{
processBlock();
- }
+ }
}
protected void processLength(
@@ -115,6 +117,7 @@ public class SHA1Digest
X[15] = (int)bitLength;
}
+ @libcore.api.CorePlatformApi
public int doFinal(
byte[] out,
int outOff)
@@ -159,7 +162,7 @@ public class SHA1Digest
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,
@@ -208,27 +211,27 @@ public class SHA1Digest
// 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
//
@@ -237,21 +240,21 @@ public class SHA1Digest
// 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
//
@@ -261,13 +264,13 @@ public class SHA1Digest
// 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;
@@ -284,13 +287,13 @@ public class SHA1Digest
// 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/srcgen/core-platform-api.txt b/srcgen/core-platform-api.txt
index 394f7d96..586bfa9f 100644
--- a/srcgen/core-platform-api.txt
+++ b/srcgen/core-platform-api.txt
@@ -75,6 +75,11 @@ method:com.android.org.bouncycastle.asn1.x509.X509Name#getOIDs()
method:com.android.org.bouncycastle.asn1.x509.X509Name#getValues()
method:com.android.org.bouncycastle.asn1.x509.X509Name#toString(boolean,Hashtable)
method:com.android.org.bouncycastle.asn1.x509.X509Name#X509Name(String)
+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.generators.OpenSSLPBEParametersGenerator#generateDerivedParameters(int)
method:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator#init(byte[],byte[])
method:com.android.org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator#OpenSSLPBEParametersGenerator()
@@ -146,6 +151,8 @@ type:com.android.org.bouncycastle.asn1.x509.V3TBSCertificateGenerator
type:com.android.org.bouncycastle.asn1.x509.X509Name
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.generators.OpenSSLPBEParametersGenerator
type:com.android.org.bouncycastle.crypto.params.KeyParameter
type:com.android.org.bouncycastle.crypto.PBEParametersGenerator