frameworks/base updates to track merge from dalvik-dev
- frameworks and CoreTests modules now depend on bouncycastle - update preloades classes for NativeBN package change - moved CryptoTest to libcore - updated api Change-Id: I47363a463f074af205b5bd128cd98faab70ac849
This commit is contained in:
@ -194,7 +194,7 @@ LOCAL_INTERMEDIATE_SOURCES := \
|
||||
$(framework-res-source-path)/com/android/internal/R.java
|
||||
|
||||
LOCAL_NO_STANDARD_LIBRARIES := true
|
||||
LOCAL_JAVA_LIBRARIES := core core-junit ext
|
||||
LOCAL_JAVA_LIBRARIES := bouncycastle core core-junit ext
|
||||
|
||||
LOCAL_MODULE := framework
|
||||
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
|
||||
@ -342,6 +342,7 @@ framework_docs_LOCAL_INTERMEDIATE_SOURCES := \
|
||||
$(framework-res-source-path)/com/android/internal/R.java
|
||||
|
||||
framework_docs_LOCAL_JAVA_LIBRARIES := \
|
||||
bouncycastle \
|
||||
core \
|
||||
ext \
|
||||
framework \
|
||||
|
38
api/9.xml
38
api/9.xml
@ -231195,7 +231195,7 @@
|
||||
>
|
||||
</method>
|
||||
<method name="getClasses"
|
||||
return="java.lang.Class[]"
|
||||
return="java.lang.Class<?>[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -231226,7 +231226,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="parameterTypes" type="java.lang.Class...">
|
||||
<parameter name="parameterTypes" type="java.lang.Class<?>...">
|
||||
</parameter>
|
||||
<exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
|
||||
</exception>
|
||||
@ -231234,7 +231234,7 @@
|
||||
</exception>
|
||||
</method>
|
||||
<method name="getConstructors"
|
||||
return="java.lang.reflect.Constructor[]"
|
||||
return="java.lang.reflect.Constructor<?>[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -231258,7 +231258,7 @@
|
||||
>
|
||||
</method>
|
||||
<method name="getDeclaredClasses"
|
||||
return="java.lang.Class[]"
|
||||
return="java.lang.Class<?>[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -231280,7 +231280,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="parameterTypes" type="java.lang.Class...">
|
||||
<parameter name="parameterTypes" type="java.lang.Class<?>...">
|
||||
</parameter>
|
||||
<exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
|
||||
</exception>
|
||||
@ -231288,7 +231288,7 @@
|
||||
</exception>
|
||||
</method>
|
||||
<method name="getDeclaredConstructors"
|
||||
return="java.lang.reflect.Constructor[]"
|
||||
return="java.lang.reflect.Constructor<?>[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -231342,7 +231342,7 @@
|
||||
>
|
||||
<parameter name="name" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="parameterTypes" type="java.lang.Class...">
|
||||
<parameter name="parameterTypes" type="java.lang.Class<?>...">
|
||||
</parameter>
|
||||
<exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
|
||||
</exception>
|
||||
@ -231470,7 +231470,7 @@
|
||||
>
|
||||
</method>
|
||||
<method name="getInterfaces"
|
||||
return="java.lang.Class[]"
|
||||
return="java.lang.Class<?>[]"
|
||||
abstract="false"
|
||||
native="true"
|
||||
synchronized="false"
|
||||
@ -231492,7 +231492,7 @@
|
||||
>
|
||||
<parameter name="name" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="parameterTypes" type="java.lang.Class...">
|
||||
<parameter name="parameterTypes" type="java.lang.Class<?>...">
|
||||
</parameter>
|
||||
<exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
|
||||
</exception>
|
||||
@ -243214,7 +243214,7 @@
|
||||
>
|
||||
<parameter name="componentType" type="java.lang.Class<?>">
|
||||
</parameter>
|
||||
<parameter name="dimensions" type="int[]">
|
||||
<parameter name="dimensions" type="int...">
|
||||
</parameter>
|
||||
<exception name="IllegalArgumentException" type="java.lang.IllegalArgumentException">
|
||||
</exception>
|
||||
@ -244172,7 +244172,7 @@
|
||||
visibility="public"
|
||||
>
|
||||
<method name="getDeclaringClass"
|
||||
return="java.lang.Class"
|
||||
return="java.lang.Class<?>"
|
||||
abstract="true"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -338875,7 +338875,7 @@
|
||||
</parameter>
|
||||
</constructor>
|
||||
<method name="doAs"
|
||||
return="java.lang.Object"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -338886,11 +338886,11 @@
|
||||
>
|
||||
<parameter name="subject" type="javax.security.auth.Subject">
|
||||
</parameter>
|
||||
<parameter name="action" type="java.security.PrivilegedAction">
|
||||
<parameter name="action" type="java.security.PrivilegedAction<T>">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="doAs"
|
||||
return="java.lang.Object"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -338901,13 +338901,13 @@
|
||||
>
|
||||
<parameter name="subject" type="javax.security.auth.Subject">
|
||||
</parameter>
|
||||
<parameter name="action" type="java.security.PrivilegedExceptionAction">
|
||||
<parameter name="action" type="java.security.PrivilegedExceptionAction<T>">
|
||||
</parameter>
|
||||
<exception name="PrivilegedActionException" type="java.security.PrivilegedActionException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="doAsPrivileged"
|
||||
return="java.lang.Object"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -338918,13 +338918,13 @@
|
||||
>
|
||||
<parameter name="subject" type="javax.security.auth.Subject">
|
||||
</parameter>
|
||||
<parameter name="action" type="java.security.PrivilegedAction">
|
||||
<parameter name="action" type="java.security.PrivilegedAction<T>">
|
||||
</parameter>
|
||||
<parameter name="context" type="java.security.AccessControlContext">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="doAsPrivileged"
|
||||
return="java.lang.Object"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -338935,7 +338935,7 @@
|
||||
>
|
||||
<parameter name="subject" type="javax.security.auth.Subject">
|
||||
</parameter>
|
||||
<parameter name="action" type="java.security.PrivilegedExceptionAction">
|
||||
<parameter name="action" type="java.security.PrivilegedExceptionAction<T>">
|
||||
</parameter>
|
||||
<parameter name="context" type="java.security.AccessControlContext">
|
||||
</parameter>
|
||||
|
199
api/current.xml
199
api/current.xml
@ -234855,7 +234855,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="dest" type="java.io.PipedReader">
|
||||
<parameter name="destination" type="java.io.PipedReader">
|
||||
</parameter>
|
||||
<exception name="IOException" type="java.io.IOException">
|
||||
</exception>
|
||||
@ -242004,7 +242004,7 @@
|
||||
>
|
||||
</method>
|
||||
<method name="getClasses"
|
||||
return="java.lang.Class[]"
|
||||
return="java.lang.Class<?>[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -242035,7 +242035,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="parameterTypes" type="java.lang.Class...">
|
||||
<parameter name="parameterTypes" type="java.lang.Class<?>...">
|
||||
</parameter>
|
||||
<exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
|
||||
</exception>
|
||||
@ -242043,7 +242043,7 @@
|
||||
</exception>
|
||||
</method>
|
||||
<method name="getConstructors"
|
||||
return="java.lang.reflect.Constructor[]"
|
||||
return="java.lang.reflect.Constructor<?>[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -242067,7 +242067,7 @@
|
||||
>
|
||||
</method>
|
||||
<method name="getDeclaredClasses"
|
||||
return="java.lang.Class[]"
|
||||
return="java.lang.Class<?>[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -242089,7 +242089,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="parameterTypes" type="java.lang.Class...">
|
||||
<parameter name="parameterTypes" type="java.lang.Class<?>...">
|
||||
</parameter>
|
||||
<exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
|
||||
</exception>
|
||||
@ -242097,7 +242097,7 @@
|
||||
</exception>
|
||||
</method>
|
||||
<method name="getDeclaredConstructors"
|
||||
return="java.lang.reflect.Constructor[]"
|
||||
return="java.lang.reflect.Constructor<?>[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -242151,7 +242151,7 @@
|
||||
>
|
||||
<parameter name="name" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="parameterTypes" type="java.lang.Class...">
|
||||
<parameter name="parameterTypes" type="java.lang.Class<?>...">
|
||||
</parameter>
|
||||
<exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
|
||||
</exception>
|
||||
@ -242279,7 +242279,7 @@
|
||||
>
|
||||
</method>
|
||||
<method name="getInterfaces"
|
||||
return="java.lang.Class[]"
|
||||
return="java.lang.Class<?>[]"
|
||||
abstract="false"
|
||||
native="true"
|
||||
synchronized="false"
|
||||
@ -242301,7 +242301,7 @@
|
||||
>
|
||||
<parameter name="name" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="parameterTypes" type="java.lang.Class...">
|
||||
<parameter name="parameterTypes" type="java.lang.Class<?>...">
|
||||
</parameter>
|
||||
<exception name="NoSuchMethodException" type="java.lang.NoSuchMethodException">
|
||||
</exception>
|
||||
@ -245900,10 +245900,10 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="x" type="double">
|
||||
</parameter>
|
||||
<parameter name="y" type="double">
|
||||
</parameter>
|
||||
<parameter name="x" type="double">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="cbrt"
|
||||
return="double"
|
||||
@ -249723,7 +249723,7 @@
|
||||
</parameter>
|
||||
<parameter name="length" type="int">
|
||||
</parameter>
|
||||
<parameter name="encoding" type="java.lang.String">
|
||||
<parameter name="charsetName" type="java.lang.String">
|
||||
</parameter>
|
||||
<exception name="UnsupportedEncodingException" type="java.io.UnsupportedEncodingException">
|
||||
</exception>
|
||||
@ -249737,7 +249737,7 @@
|
||||
>
|
||||
<parameter name="data" type="byte[]">
|
||||
</parameter>
|
||||
<parameter name="encoding" type="java.lang.String">
|
||||
<parameter name="charsetName" type="java.lang.String">
|
||||
</parameter>
|
||||
<exception name="UnsupportedEncodingException" type="java.io.UnsupportedEncodingException">
|
||||
</exception>
|
||||
@ -249755,7 +249755,7 @@
|
||||
</parameter>
|
||||
<parameter name="length" type="int">
|
||||
</parameter>
|
||||
<parameter name="encoding" type="java.nio.charset.Charset">
|
||||
<parameter name="charset" type="java.nio.charset.Charset">
|
||||
</parameter>
|
||||
</constructor>
|
||||
<constructor name="String"
|
||||
@ -249767,7 +249767,7 @@
|
||||
>
|
||||
<parameter name="data" type="byte[]">
|
||||
</parameter>
|
||||
<parameter name="encoding" type="java.nio.charset.Charset">
|
||||
<parameter name="charset" type="java.nio.charset.Charset">
|
||||
</parameter>
|
||||
</constructor>
|
||||
<constructor name="String"
|
||||
@ -250058,17 +250058,6 @@
|
||||
<parameter name="args" type="java.lang.Object...">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="getBytes"
|
||||
return="byte[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="getBytes"
|
||||
return="void"
|
||||
abstract="false"
|
||||
@ -250098,7 +250087,18 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="encoding" type="java.lang.String">
|
||||
</method>
|
||||
<method name="getBytes"
|
||||
return="byte[]"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="charsetName" type="java.lang.String">
|
||||
</parameter>
|
||||
<exception name="UnsupportedEncodingException" type="java.io.UnsupportedEncodingException">
|
||||
</exception>
|
||||
@ -250113,7 +250113,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="encoding" type="java.nio.charset.Charset">
|
||||
<parameter name="charset" type="java.nio.charset.Charset">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="getChars"
|
||||
@ -254447,7 +254447,7 @@
|
||||
>
|
||||
<parameter name="componentType" type="java.lang.Class<?>">
|
||||
</parameter>
|
||||
<parameter name="dimensions" type="int[]">
|
||||
<parameter name="dimensions" type="int...">
|
||||
</parameter>
|
||||
<exception name="IllegalArgumentException" type="java.lang.IllegalArgumentException">
|
||||
</exception>
|
||||
@ -255405,7 +255405,7 @@
|
||||
visibility="public"
|
||||
>
|
||||
<method name="getDeclaringClass"
|
||||
return="java.lang.Class"
|
||||
return="java.lang.Class<?>"
|
||||
abstract="true"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -272444,7 +272444,7 @@
|
||||
return="boolean"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="true"
|
||||
synchronized="false"
|
||||
static="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
@ -273600,7 +273600,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="perm" type="java.security.Permission">
|
||||
<parameter name="permission" type="java.security.Permission">
|
||||
</parameter>
|
||||
<exception name="AccessControlException" type="java.security.AccessControlException">
|
||||
</exception>
|
||||
@ -273665,6 +273665,34 @@
|
||||
<exception name="PrivilegedActionException" type="java.security.PrivilegedActionException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="doPrivilegedWithCombiner"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="action" type="java.security.PrivilegedAction<T>">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="doPrivilegedWithCombiner"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="action" type="java.security.PrivilegedExceptionAction<T>">
|
||||
</parameter>
|
||||
<exception name="PrivilegedActionException" type="java.security.PrivilegedActionException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="getContext"
|
||||
return="java.security.AccessControlContext"
|
||||
abstract="false"
|
||||
@ -316246,7 +316274,7 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="f" type="java.lang.String">
|
||||
<parameter name="flags" type="java.lang.String">
|
||||
</parameter>
|
||||
</constructor>
|
||||
<method name="getFlags"
|
||||
@ -339984,8 +340012,6 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="input" type="java.lang.CharSequence">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="reset"
|
||||
return="java.util.regex.Matcher"
|
||||
@ -339997,6 +340023,8 @@
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="input" type="java.lang.CharSequence">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="start"
|
||||
return="int"
|
||||
@ -361344,7 +361372,7 @@
|
||||
</parameter>
|
||||
</constructor>
|
||||
<method name="doAs"
|
||||
return="java.lang.Object"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -361355,11 +361383,11 @@
|
||||
>
|
||||
<parameter name="subject" type="javax.security.auth.Subject">
|
||||
</parameter>
|
||||
<parameter name="action" type="java.security.PrivilegedAction">
|
||||
<parameter name="action" type="java.security.PrivilegedAction<T>">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="doAs"
|
||||
return="java.lang.Object"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -361370,13 +361398,13 @@
|
||||
>
|
||||
<parameter name="subject" type="javax.security.auth.Subject">
|
||||
</parameter>
|
||||
<parameter name="action" type="java.security.PrivilegedExceptionAction">
|
||||
<parameter name="action" type="java.security.PrivilegedExceptionAction<T>">
|
||||
</parameter>
|
||||
<exception name="PrivilegedActionException" type="java.security.PrivilegedActionException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="doAsPrivileged"
|
||||
return="java.lang.Object"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -361387,13 +361415,13 @@
|
||||
>
|
||||
<parameter name="subject" type="javax.security.auth.Subject">
|
||||
</parameter>
|
||||
<parameter name="action" type="java.security.PrivilegedAction">
|
||||
<parameter name="action" type="java.security.PrivilegedAction<T>">
|
||||
</parameter>
|
||||
<parameter name="context" type="java.security.AccessControlContext">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="doAsPrivileged"
|
||||
return="java.lang.Object"
|
||||
return="T"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
@ -361404,7 +361432,7 @@
|
||||
>
|
||||
<parameter name="subject" type="javax.security.auth.Subject">
|
||||
</parameter>
|
||||
<parameter name="action" type="java.security.PrivilegedExceptionAction">
|
||||
<parameter name="action" type="java.security.PrivilegedExceptionAction<T>">
|
||||
</parameter>
|
||||
<parameter name="context" type="java.security.AccessControlContext">
|
||||
</parameter>
|
||||
@ -365963,6 +365991,23 @@
|
||||
<exception name="DatatypeConfigurationException" type="javax.xml.datatype.DatatypeConfigurationException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="newInstance"
|
||||
return="javax.xml.datatype.DatatypeFactory"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="factoryClassName" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="classLoader" type="java.lang.ClassLoader">
|
||||
</parameter>
|
||||
<exception name="DatatypeConfigurationException" type="javax.xml.datatype.DatatypeConfigurationException">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="newXMLGregorianCalendar"
|
||||
return="javax.xml.datatype.XMLGregorianCalendar"
|
||||
abstract="true"
|
||||
@ -367469,6 +367514,21 @@
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="newInstance"
|
||||
return="javax.xml.parsers.DocumentBuilderFactory"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="factoryClassName" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="classLoader" type="java.lang.ClassLoader">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="setAttribute"
|
||||
return="void"
|
||||
abstract="true"
|
||||
@ -368113,6 +368173,21 @@
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="newInstance"
|
||||
return="javax.xml.parsers.SAXParserFactory"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="factoryClassName" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="classLoader" type="java.lang.ClassLoader">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="newSAXParser"
|
||||
return="javax.xml.parsers.SAXParser"
|
||||
abstract="true"
|
||||
@ -369034,6 +369109,23 @@
|
||||
<exception name="TransformerFactoryConfigurationError" type="javax.xml.transform.TransformerFactoryConfigurationError">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="newInstance"
|
||||
return="javax.xml.transform.TransformerFactory"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="factoryClassName" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="classLoader" type="java.lang.ClassLoader">
|
||||
</parameter>
|
||||
<exception name="TransformerFactoryConfigurationError" type="javax.xml.transform.TransformerFactoryConfigurationError">
|
||||
</exception>
|
||||
</method>
|
||||
<method name="newTemplates"
|
||||
return="javax.xml.transform.Templates"
|
||||
abstract="true"
|
||||
@ -370475,13 +370567,30 @@
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="true"
|
||||
final="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="schemaLanguage" type="java.lang.String">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="newInstance"
|
||||
return="javax.xml.validation.SchemaFactory"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="true"
|
||||
final="false"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
<parameter name="schemaLanguage" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="factoryClassName" type="java.lang.String">
|
||||
</parameter>
|
||||
<parameter name="classLoader" type="java.lang.ClassLoader">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="newSchema"
|
||||
return="javax.xml.validation.Schema"
|
||||
abstract="false"
|
||||
|
@ -845,6 +845,7 @@ java.math.BigDecimal
|
||||
java.math.BigInt
|
||||
java.math.BigInteger
|
||||
java.math.Multiplication
|
||||
java.math.NativeBN
|
||||
java.net.AddressCache
|
||||
java.net.AddressCache$1
|
||||
java.net.ConnectException
|
||||
@ -1249,7 +1250,6 @@ org.ccil.cowan.tagsoup.Parser
|
||||
org.json.JSONObject
|
||||
org.kxml2.io.KXmlParser
|
||||
org.kxml2.io.KXmlSerializer
|
||||
org.openssl.NativeBN
|
||||
org.xml.sax.Attributes
|
||||
org.xml.sax.InputSource
|
||||
org.xml.sax.helpers.AttributesImpl
|
||||
|
@ -6,7 +6,7 @@ LOCAL_MODULE_TAGS := tests
|
||||
LOCAL_SRC_FILES := \
|
||||
$(call all-subdir-java-files)
|
||||
|
||||
LOCAL_JAVA_LIBRARIES := android.test.runner
|
||||
LOCAL_JAVA_LIBRARIES := android.test.runner bouncycastle
|
||||
|
||||
LOCAL_PACKAGE_NAME := CoreTests
|
||||
|
||||
|
@ -1,126 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2008 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.core;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigest;
|
||||
import org.bouncycastle.crypto.Digest;
|
||||
import org.bouncycastle.crypto.ExtendedDigest;
|
||||
import org.bouncycastle.crypto.digests.MD4Digest;
|
||||
import org.bouncycastle.crypto.digests.MD5Digest;
|
||||
import org.bouncycastle.crypto.digests.SHA1Digest;
|
||||
import android.test.suitebuilder.annotation.LargeTest;
|
||||
import android.test.suitebuilder.annotation.MediumTest;
|
||||
|
||||
/**
|
||||
* Implements unit tests for our JNI wrapper around OpenSSL. We use the
|
||||
* existing Bouncy Castle implementation as our test oracle.
|
||||
*/
|
||||
public class CryptoTest extends TestCase {
|
||||
|
||||
/**
|
||||
* Processes the two given message digests for the same data and checks
|
||||
* the results. Requirement is that the results must be equal, the digest
|
||||
* implementations must have the same properties, and the new implementation
|
||||
* must be faster than the old one.
|
||||
*
|
||||
* @param oldDigest The old digest implementation, provided by Bouncy Castle
|
||||
* @param newDigest The new digest implementation, provided by OpenSSL
|
||||
*/
|
||||
public void doTestMessageDigest(Digest oldDigest, Digest newDigest) {
|
||||
final int ITERATIONS = 10;
|
||||
|
||||
byte[] data = new byte[1024];
|
||||
|
||||
byte[] oldHash = new byte[oldDigest.getDigestSize()];
|
||||
byte[] newHash = new byte[newDigest.getDigestSize()];
|
||||
|
||||
Assert.assertEquals("Hash names must be equal", oldDigest.getAlgorithmName(), newDigest.getAlgorithmName());
|
||||
Assert.assertEquals("Hash sizes must be equal", oldHash.length, newHash.length);
|
||||
Assert.assertEquals("Hash block sizes must be equal", ((ExtendedDigest)oldDigest).getByteLength(), ((ExtendedDigest)newDigest).getByteLength());
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
data[i] = (byte)i;
|
||||
}
|
||||
|
||||
long oldTime = 0;
|
||||
long newTime = 0;
|
||||
|
||||
for (int j = 0; j < ITERATIONS; j++) {
|
||||
long t0 = System.currentTimeMillis();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
oldDigest.update(data, 0, data.length);
|
||||
}
|
||||
int oldLength = oldDigest.doFinal(oldHash, 0);
|
||||
long t1 = System.currentTimeMillis();
|
||||
|
||||
oldTime = oldTime + (t1 - t0);
|
||||
|
||||
long t2 = System.currentTimeMillis();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
newDigest.update(data, 0, data.length);
|
||||
}
|
||||
int newLength = newDigest.doFinal(newHash, 0);
|
||||
long t3 = System.currentTimeMillis();
|
||||
|
||||
newTime = newTime + (t3 - t2);
|
||||
|
||||
Assert.assertEquals("Hash sizes must be equal", oldLength, newLength);
|
||||
|
||||
for (int i = 0; i < oldLength; i++) {
|
||||
Assert.assertEquals("Hashes[" + i + "] must be equal", oldHash[i], newHash[i]);
|
||||
}
|
||||
}
|
||||
|
||||
android.util.Log.d("CryptoTest", "Time for " + ITERATIONS + " x old hash processing: " + oldTime + " ms");
|
||||
android.util.Log.d("CryptoTest", "Time for " + ITERATIONS + " x new hash processing: " + newTime + " ms");
|
||||
|
||||
// Assert.assertTrue("New hash should be faster", newTime < oldTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the MD4 implementation.
|
||||
*/
|
||||
@MediumTest
|
||||
public void testMD4() {
|
||||
Digest oldDigest = new MD4Digest();
|
||||
Digest newDigest = OpenSSLMessageDigest.getInstance("MD4");
|
||||
doTestMessageDigest(oldDigest, newDigest);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the MD5 implementation.
|
||||
*/
|
||||
@MediumTest
|
||||
public void testMD5() {
|
||||
Digest oldDigest = new MD5Digest();
|
||||
Digest newDigest = OpenSSLMessageDigest.getInstance("MD5");
|
||||
doTestMessageDigest(oldDigest, newDigest);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the SHA-1 implementation.
|
||||
*/
|
||||
@MediumTest
|
||||
public void testSHA1() {
|
||||
Digest oldDigest = new SHA1Digest();
|
||||
Digest newDigest = OpenSSLMessageDigest.getInstance("SHA-1");
|
||||
doTestMessageDigest(oldDigest, newDigest);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user