

One can release the memory by - * calling free(). Otherwise it returns the value in dynamically allocated memory - * and sets the size if the pointer is not NULL. If something goes wrong, NULL - * is returned. * Users are required to link against libcutils. */ + +static int encode_key(char *out, uint8_t *in, int length) + + length = bytes -#include +#include #include +#include +#include +#include -#include "certtool.h" +#include -/* This function is provided to native components to get values from keystore.


Note + * that Base64 cannot be used here due to the need of prefix match on keys. Therefore in the worst case the length of a key gets doubled. The second byte encodes the rest of the bits into + *. The first byte is one of which represents the first + * two bits of the character. This is necessary in order to allow arbitrary + * characters in keys. */ + +#define KEY_SIZE 120 +#define VALUE_SIZE 32768 +#define PASSWORD_SIZE VALUE_SIZE + +/* Here is the encoding of keys. To keep things simple, buffers are always larger than + * the maximum space we needed, so boundary checks on buffers are omitted. The encryption key is protected by a + * user-defined password.

Keys are encoded in file names, and + * values are encrypted with checksums. In this implementation, + * each file stores one key-value pair. frameworks/base/api/current.xml Eclair \ -error 1 -error 2 -warning 3 -error 4 -error 6 -error 8 \ -overview $(LOCAL_PATH)/core/java/overview.html diff -git a/api/current.xml b/api/current.xml +++ -126,6 +126,8 \ core/java/android/view/IWindowManager.aidl \ core/java/android/view/IWindowSession.aidl \ + core/java/android/speech/IRecognitionListener.aidl \ + core/java/android/speech/IRecognitionService.aidl \ core/java/android/speech/tts/ITts.aidl \ core/java/android/speech/tts/ITtsCallback.aidl \ core/java/com/android/internal/app/IBatteryStats.aidl \ -339,6 +341,7. Make ParcelUuid helper functions consistent.
