diff options
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 |