diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-06 11:22:25 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-07-06 11:22:25 -0700 |
commit | 71830eaeda868d77225f72500538a0a5944f236c (patch) | |
tree | 3378729cba7ff023ff26861ed4babd4b067da54a /cmds | |
parent | 58c714c41ac3799b0b408affd9804056070d358c (diff) | |
parent | 3383df385e208807b1dc5f2956f82a7f75f65fd8 (diff) | |
download | frameworks_base-71830eaeda868d77225f72500538a0a5944f236c.zip frameworks_base-71830eaeda868d77225f72500538a0a5944f236c.tar.gz frameworks_base-71830eaeda868d77225f72500538a0a5944f236c.tar.bz2 |
am 3383df38: Merge change 6198 into donut
Merge commit '3383df385e208807b1dc5f2956f82a7f75f65fd8'
* commit '3383df385e208807b1dc5f2956f82a7f75f65fd8':
keystore: Provide a generic getter for native components.
Diffstat (limited to 'cmds')
-rw-r--r-- | cmds/keystore/keystore_get.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/cmds/keystore/keystore_get.h b/cmds/keystore/keystore_get.h new file mode 100644 index 0000000..a7fd9a5 --- /dev/null +++ b/cmds/keystore/keystore_get.h @@ -0,0 +1,53 @@ +/* +** +** Copyright 2009, 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. +*/ + +#ifndef __KEYSTORE_GET_H__ +#define __KEYSTORE_GET_H__ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "certtool.h" + +/* This function is provided to native components to get values from keystore. + * Users are required to link against libcutils. If something goes wrong, NULL + * is returned. Otherwise it returns the value in dynamically allocated memory + * and sets the size if the pointer is not NULL. One can release the memory by + * calling free(). */ +static char *keystore_get(char *key, int *size) +{ + char buffer[MAX_KEY_VALUE_LENGTH]; + char *value; + int length; + + if (get_cert(key, (unsigned char *)buffer, &length) != 0) { + return NULL; + } + value = malloc(length + 1); + if (!value) { + return NULL; + } + memcpy(value, buffer, length); + value[length] = 0; + if (size) { + *size = length; + } + return value; +} + +#endif |