1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* crypto/store/store.h -*- mode:C; c-file-style: "eay" -*- */ 2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * project 2003. 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ==================================================================== 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright (c) 2003 The OpenSSL Project. All rights reserved. 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * are met: 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1. Redistributions of source code must retain the above copyright 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer. 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer in 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the documentation and/or other materials provided with the 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * distribution. 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 3. All advertising materials mentioning features or use of this 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * software must display the following acknowledgment: 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * endorse or promote products derived from this software without 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * prior written permission. For written permission, please contact 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * openssl-core@openssl.org. 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5. Products derived from this software may not be called "OpenSSL" 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * nor may "OpenSSL" appear in their names without prior written 32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * permission of the OpenSSL Project. 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 6. Redistributions of any form whatsoever must retain the following 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * acknowledgment: 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OF THE POSSIBILITY OF SUCH DAMAGE. 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ==================================================================== 52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This product includes cryptographic software written by Eric Young 54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * (eay@cryptsoft.com). This product includes software written by Tim 55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Hudson (tjh@cryptsoft.com). 56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef HEADER_STORE_H 60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HEADER_STORE_H 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 62221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#include <openssl/opensslconf.h> 63221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 64221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifdef OPENSSL_NO_STORE 65221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#error STORE is disabled. 66221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 67221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/ossl_typ.h> 69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_DEPRECATED 70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/evp.h> 71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/bn.h> 72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/x509.h> 73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef __cplusplus 76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern "C" { 77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Already defined in ossl_typ.h */ 80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* typedef struct store_st STORE; */ 81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* typedef struct store_method_st STORE_METHOD; */ 82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* All the following functions return 0, a negative number or NULL on error. 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project When everything is fine, they return a positive value or a non-NULL 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project pointer, all depending on their purpose. */ 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Creators and destructor. */ 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE *STORE_new_method(const STORE_METHOD *method); 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE *STORE_new_engine(ENGINE *engine); 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid STORE_free(STORE *ui); 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Give a user interface parametrised control commands. This can be used to 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project send down an integer, a data pointer or a function pointer, as well as 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project be used to get information from a STORE. */ 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ctrl(STORE *store, int cmd, long i, void *p, void (*f)(void)); 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* A control to set the directory with keys and certificates. Used by the 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project built-in directory level method. */ 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_CTRL_SET_DIRECTORY 0x0001 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* A control to set a file to load. Used by the built-in file level method. */ 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_CTRL_SET_FILE 0x0002 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* A control to set a configuration file to load. Can be used by any method 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project that wishes to load a configuration file. */ 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_CTRL_SET_CONF_FILE 0x0003 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* A control to set a the section of the loaded configuration file. Can be 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project used by any method that wishes to load a configuration file. */ 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_CTRL_SET_CONF_SECTION 0x0004 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Some methods may use extra data */ 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_set_app_data(s,arg) STORE_set_ex_data(s,0,arg) 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_get_app_data(s) STORE_get_ex_data(s,0) 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_set_ex_data(STORE *r,int idx,void *arg); 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *STORE_get_ex_data(STORE *r, int idx); 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Use specific methods instead of the built-in one */ 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst STORE_METHOD *STORE_get_method(STORE *store); 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst STORE_METHOD *STORE_set_method(STORE *store, const STORE_METHOD *meth); 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The standard OpenSSL methods. */ 125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* This is the in-memory method. It does everything except revoking and updating, 126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and is of course volatile. It's used by other methods that have an in-memory 127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cache. */ 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst STORE_METHOD *STORE_Memory(void); 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if 0 /* Not yet implemented */ 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* This is the directory store. It does everything except revoking and updating, 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and uses STORE_Memory() to cache things in memory. */ 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst STORE_METHOD *STORE_Directory(void); 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* This is the file store. It does everything except revoking and updating, 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and uses STORE_Memory() to cache things in memory. Certificates are added 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project to it with the store operation, and it will only get cached certificates. */ 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectconst STORE_METHOD *STORE_File(void); 137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Store functions take a type code for the type of data they should store 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project or fetch */ 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef enum STORE_object_types 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_OBJECT_TYPE_X509_CERTIFICATE= 0x01, /* X509 * */ 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_OBJECT_TYPE_X509_CRL= 0x02, /* X509_CRL * */ 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_OBJECT_TYPE_PRIVATE_KEY= 0x03, /* EVP_PKEY * */ 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_OBJECT_TYPE_PUBLIC_KEY= 0x04, /* EVP_PKEY * */ 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_OBJECT_TYPE_NUMBER= 0x05, /* BIGNUM * */ 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_OBJECT_TYPE_ARBITRARY= 0x06, /* BUF_MEM * */ 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_OBJECT_TYPE_NUM= 0x06 /* The amount of known 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project object types */ 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } STORE_OBJECT_TYPES; 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* List of text strings corresponding to the object types. */ 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern const char * const STORE_object_type_string[STORE_OBJECT_TYPE_NUM+1]; 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Some store functions take a parameter list. Those parameters come with 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project one of the following codes. The comments following the codes below indicate 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project what type the value should be a pointer to. */ 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef enum STORE_params 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_PARAM_EVP_TYPE= 0x01, /* int */ 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_PARAM_BITS= 0x02, /* size_t */ 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_PARAM_KEY_PARAMETERS= 0x03, /* ??? */ 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_PARAM_KEY_NO_PARAMETERS= 0x04, /* N/A */ 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_PARAM_AUTH_PASSPHRASE= 0x05, /* char * */ 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_PARAM_AUTH_KRB5_TICKET= 0x06, /* void * */ 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_PARAM_TYPE_NUM= 0x06 /* The amount of known 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project parameter types */ 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } STORE_PARAM_TYPES; 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Parameter value sizes. -1 means unknown, anything else is the required size. */ 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern const int STORE_param_sizes[STORE_PARAM_TYPE_NUM+1]; 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Store functions take attribute lists. Those attributes come with codes. 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project The comments following the codes below indicate what type the value should 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project be a pointer to. */ 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef enum STORE_attribs 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_END= 0x00, 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_FRIENDLYNAME= 0x01, /* C string */ 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_KEYID= 0x02, /* 160 bit string (SHA1) */ 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_ISSUERKEYID= 0x03, /* 160 bit string (SHA1) */ 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_SUBJECTKEYID= 0x04, /* 160 bit string (SHA1) */ 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_ISSUERSERIALHASH= 0x05, /* 160 bit string (SHA1) */ 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_ISSUER= 0x06, /* X509_NAME * */ 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_SERIAL= 0x07, /* BIGNUM * */ 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_SUBJECT= 0x08, /* X509_NAME * */ 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_CERTHASH= 0x09, /* 160 bit string (SHA1) */ 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_EMAIL= 0x0a, /* C string */ 188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_FILENAME= 0x0b, /* C string */ 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_TYPE_NUM= 0x0b, /* The amount of known 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project attribute types */ 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_OR= 0xff /* This is a special 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project separator, which 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project expresses the OR 194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project operation. */ 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } STORE_ATTR_TYPES; 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Attribute value sizes. -1 means unknown, anything else is the required size. */ 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern const int STORE_attr_sizes[STORE_ATTR_TYPE_NUM+1]; 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef enum STORE_certificate_status 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_X509_VALID= 0x00, 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_X509_EXPIRED= 0x01, 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_X509_SUSPENDED= 0x02, 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_X509_REVOKED= 0x03 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } STORE_CERTIFICATE_STATUS; 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Engine store functions will return a structure that contains all the necessary 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * information, including revokation status for certificates. This is really not 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * needed for application authors, as the ENGINE framework functions will extract 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the OpenSSL-specific information when at all possible. However, for engine 211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * authors, it's crucial to know this structure. */ 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct STORE_OBJECT_st 213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_OBJECT_TYPES type; 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project union 216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project struct 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_CERTIFICATE_STATUS status; 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509 *certificate; 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } x509; 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_CRL *crl; 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_PKEY *key; 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project BIGNUM *number; 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project BUF_MEM *arbitrary; 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } data; 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } STORE_OBJECT; 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_STACK_OF(STORE_OBJECT) 229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_OBJECT *STORE_OBJECT_new(void); 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid STORE_OBJECT_free(STORE_OBJECT *data); 231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The following functions handle the storage. They return 0, a negative number 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project or NULL on error, anything else on success. */ 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509 *STORE_get_certificate(STORE *e, OPENSSL_ITEM attributes[], 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_store_certificate(STORE *e, X509 *data, OPENSSL_ITEM attributes[], 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_modify_certificate(STORE *e, OPENSSL_ITEM search_attributes[], 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM add_attributes[], OPENSSL_ITEM modify_attributes[], 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]); 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_revoke_certificate(STORE *e, OPENSSL_ITEM attributes[], 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_delete_certificate(STORE *e, OPENSSL_ITEM attributes[], 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *STORE_list_certificate_start(STORE *e, OPENSSL_ITEM attributes[], 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509 *STORE_list_certificate_next(STORE *e, void *handle); 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_list_certificate_end(STORE *e, void *handle); 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_list_certificate_endp(STORE *e, void *handle); 252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *STORE_generate_key(STORE *e, OPENSSL_ITEM attributes[], 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *STORE_get_private_key(STORE *e, OPENSSL_ITEM attributes[], 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_store_private_key(STORE *e, EVP_PKEY *data, 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]); 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_modify_private_key(STORE *e, OPENSSL_ITEM search_attributes[], 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM add_sttributes[], OPENSSL_ITEM modify_attributes[], 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]); 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_revoke_private_key(STORE *e, OPENSSL_ITEM attributes[], 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_delete_private_key(STORE *e, OPENSSL_ITEM attributes[], 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *STORE_list_private_key_start(STORE *e, OPENSSL_ITEM attributes[], 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *STORE_list_private_key_next(STORE *e, void *handle); 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_list_private_key_end(STORE *e, void *handle); 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_list_private_key_endp(STORE *e, void *handle); 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *STORE_get_public_key(STORE *e, OPENSSL_ITEM attributes[], 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_store_public_key(STORE *e, EVP_PKEY *data, OPENSSL_ITEM attributes[], 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_modify_public_key(STORE *e, OPENSSL_ITEM search_attributes[], 275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM add_sttributes[], OPENSSL_ITEM modify_attributes[], 276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]); 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_revoke_public_key(STORE *e, OPENSSL_ITEM attributes[], 278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_delete_public_key(STORE *e, OPENSSL_ITEM attributes[], 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *STORE_list_public_key_start(STORE *e, OPENSSL_ITEM attributes[], 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *STORE_list_public_key_next(STORE *e, void *handle); 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_list_public_key_end(STORE *e, void *handle); 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_list_public_key_endp(STORE *e, void *handle); 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_CRL *STORE_generate_crl(STORE *e, OPENSSL_ITEM attributes[], 287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_CRL *STORE_get_crl(STORE *e, OPENSSL_ITEM attributes[], 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_store_crl(STORE *e, X509_CRL *data, OPENSSL_ITEM attributes[], 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_modify_crl(STORE *e, OPENSSL_ITEM search_attributes[], 293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM add_sttributes[], OPENSSL_ITEM modify_attributes[], 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]); 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_delete_crl(STORE *e, OPENSSL_ITEM attributes[], 296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *STORE_list_crl_start(STORE *e, OPENSSL_ITEM attributes[], 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_CRL *STORE_list_crl_next(STORE *e, void *handle); 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_list_crl_end(STORE *e, void *handle); 301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_list_crl_endp(STORE *e, void *handle); 302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_store_number(STORE *e, BIGNUM *data, OPENSSL_ITEM attributes[], 303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_modify_number(STORE *e, OPENSSL_ITEM search_attributes[], 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM add_sttributes[], OPENSSL_ITEM modify_attributes[], 306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]); 307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBIGNUM *STORE_get_number(STORE *e, OPENSSL_ITEM attributes[], 308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_delete_number(STORE *e, OPENSSL_ITEM attributes[], 310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_store_arbitrary(STORE *e, BUF_MEM *data, OPENSSL_ITEM attributes[], 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_modify_arbitrary(STORE *e, OPENSSL_ITEM search_attributes[], 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM add_sttributes[], OPENSSL_ITEM modify_attributes[], 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]); 316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBUF_MEM *STORE_get_arbitrary(STORE *e, OPENSSL_ITEM attributes[], 317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_delete_arbitrary(STORE *e, OPENSSL_ITEM attributes[], 319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OPENSSL_ITEM parameters[]); 320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Create and manipulate methods */ 323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_METHOD *STORE_create_method(char *name); 324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid STORE_destroy_method(STORE_METHOD *store_method); 325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* These callback types are use for store handlers */ 327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int (*STORE_INITIALISE_FUNC_PTR)(STORE *); 328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef void (*STORE_CLEANUP_FUNC_PTR)(STORE *); 329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef STORE_OBJECT *(*STORE_GENERATE_OBJECT_FUNC_PTR)(STORE *, STORE_OBJECT_TYPES type, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]); 330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef STORE_OBJECT *(*STORE_GET_OBJECT_FUNC_PTR)(STORE *, STORE_OBJECT_TYPES type, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]); 331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef void *(*STORE_START_OBJECT_FUNC_PTR)(STORE *, STORE_OBJECT_TYPES type, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]); 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef STORE_OBJECT *(*STORE_NEXT_OBJECT_FUNC_PTR)(STORE *, void *handle); 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int (*STORE_END_OBJECT_FUNC_PTR)(STORE *, void *handle); 334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int (*STORE_HANDLE_OBJECT_FUNC_PTR)(STORE *, STORE_OBJECT_TYPES type, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]); 335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int (*STORE_STORE_OBJECT_FUNC_PTR)(STORE *, STORE_OBJECT_TYPES type, STORE_OBJECT *data, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]); 336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int (*STORE_MODIFY_OBJECT_FUNC_PTR)(STORE *, STORE_OBJECT_TYPES type, OPENSSL_ITEM search_attributes[], OPENSSL_ITEM add_attributes[], OPENSSL_ITEM modify_attributes[], OPENSSL_ITEM delete_attributes[], OPENSSL_ITEM parameters[]); 337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int (*STORE_GENERIC_FUNC_PTR)(STORE *, OPENSSL_ITEM attributes[], OPENSSL_ITEM parameters[]); 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef int (*STORE_CTRL_FUNC_PTR)(STORE *, int cmd, long l, void *p, void (*f)(void)); 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_initialise_function(STORE_METHOD *sm, STORE_INITIALISE_FUNC_PTR init_f); 341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_cleanup_function(STORE_METHOD *sm, STORE_CLEANUP_FUNC_PTR clean_f); 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_generate_function(STORE_METHOD *sm, STORE_GENERATE_OBJECT_FUNC_PTR generate_f); 343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_get_function(STORE_METHOD *sm, STORE_GET_OBJECT_FUNC_PTR get_f); 344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_store_function(STORE_METHOD *sm, STORE_STORE_OBJECT_FUNC_PTR store_f); 345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_modify_function(STORE_METHOD *sm, STORE_MODIFY_OBJECT_FUNC_PTR store_f); 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_revoke_function(STORE_METHOD *sm, STORE_HANDLE_OBJECT_FUNC_PTR revoke_f); 347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_delete_function(STORE_METHOD *sm, STORE_HANDLE_OBJECT_FUNC_PTR delete_f); 348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_list_start_function(STORE_METHOD *sm, STORE_START_OBJECT_FUNC_PTR list_start_f); 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_list_next_function(STORE_METHOD *sm, STORE_NEXT_OBJECT_FUNC_PTR list_next_f); 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_list_end_function(STORE_METHOD *sm, STORE_END_OBJECT_FUNC_PTR list_end_f); 351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_update_store_function(STORE_METHOD *sm, STORE_GENERIC_FUNC_PTR); 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_lock_store_function(STORE_METHOD *sm, STORE_GENERIC_FUNC_PTR); 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_unlock_store_function(STORE_METHOD *sm, STORE_GENERIC_FUNC_PTR); 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_method_set_ctrl_function(STORE_METHOD *sm, STORE_CTRL_FUNC_PTR ctrl_f); 355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_INITIALISE_FUNC_PTR STORE_method_get_initialise_function(STORE_METHOD *sm); 357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_CLEANUP_FUNC_PTR STORE_method_get_cleanup_function(STORE_METHOD *sm); 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_GENERATE_OBJECT_FUNC_PTR STORE_method_get_generate_function(STORE_METHOD *sm); 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_GET_OBJECT_FUNC_PTR STORE_method_get_get_function(STORE_METHOD *sm); 360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_STORE_OBJECT_FUNC_PTR STORE_method_get_store_function(STORE_METHOD *sm); 361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_MODIFY_OBJECT_FUNC_PTR STORE_method_get_modify_function(STORE_METHOD *sm); 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_HANDLE_OBJECT_FUNC_PTR STORE_method_get_revoke_function(STORE_METHOD *sm); 363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_HANDLE_OBJECT_FUNC_PTR STORE_method_get_delete_function(STORE_METHOD *sm); 364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_START_OBJECT_FUNC_PTR STORE_method_get_list_start_function(STORE_METHOD *sm); 365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_NEXT_OBJECT_FUNC_PTR STORE_method_get_list_next_function(STORE_METHOD *sm); 366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_END_OBJECT_FUNC_PTR STORE_method_get_list_end_function(STORE_METHOD *sm); 367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_GENERIC_FUNC_PTR STORE_method_get_update_store_function(STORE_METHOD *sm); 368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_GENERIC_FUNC_PTR STORE_method_get_lock_store_function(STORE_METHOD *sm); 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_GENERIC_FUNC_PTR STORE_method_get_unlock_store_function(STORE_METHOD *sm); 370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_CTRL_FUNC_PTR STORE_method_get_ctrl_function(STORE_METHOD *sm); 371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Method helper structures and functions. */ 373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* This structure is the result of parsing through the information in a list 375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project of OPENSSL_ITEMs. It stores all the necessary information in a structured 376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project way.*/ 377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct STORE_attr_info_st STORE_ATTR_INFO; 378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Parse a list of OPENSSL_ITEMs and return a pointer to a STORE_ATTR_INFO. 380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project Note that we do this in the list form, since the list of OPENSSL_ITEMs can 381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project come in blocks separated with STORE_ATTR_OR. Note that the value returned 382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project by STORE_parse_attrs_next() must be freed with STORE_ATTR_INFO_free(). */ 383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *STORE_parse_attrs_start(OPENSSL_ITEM *attributes); 384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_ATTR_INFO *STORE_parse_attrs_next(void *handle); 385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_parse_attrs_end(void *handle); 386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_parse_attrs_endp(void *handle); 387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Creator and destructor */ 389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTORE_ATTR_INFO *STORE_ATTR_INFO_new(void); 390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_free(STORE_ATTR_INFO *attrs); 391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Manipulators */ 393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectchar *STORE_ATTR_INFO_get0_cstr(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code); 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectunsigned char *STORE_ATTR_INFO_get0_sha1str(STORE_ATTR_INFO *attrs, 395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STORE_ATTR_TYPES code); 396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_NAME *STORE_ATTR_INFO_get0_dn(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code); 397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBIGNUM *STORE_ATTR_INFO_get0_number(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code); 398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_set_cstr(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code, 399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *cstr, size_t cstr_size); 400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_set_sha1str(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code, 401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *sha1str, size_t sha1str_size); 402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_set_dn(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code, 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_NAME *dn); 404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_set_number(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code, 405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project BIGNUM *number); 406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_modify_cstr(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code, 407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *cstr, size_t cstr_size); 408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_modify_sha1str(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code, 409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned char *sha1str, size_t sha1str_size); 410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_modify_dn(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code, 411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_NAME *dn); 412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_modify_number(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code, 413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project BIGNUM *number); 414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Compare on basis of a bit pattern formed by the STORE_ATTR_TYPES values 416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project in each contained attribute. */ 417221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint STORE_ATTR_INFO_compare(const STORE_ATTR_INFO * const *a, 418221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom const STORE_ATTR_INFO * const *b); 419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Check if the set of attributes in a is within the range of attributes 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project set in b. */ 421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_in_range(STORE_ATTR_INFO *a, STORE_ATTR_INFO *b); 422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Check if the set of attributes in a are also set in b. */ 423656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_in(STORE_ATTR_INFO *a, STORE_ATTR_INFO *b); 424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Same as STORE_ATTR_INFO_in(), but also checks the attribute values. */ 425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint STORE_ATTR_INFO_in_ex(STORE_ATTR_INFO *a, STORE_ATTR_INFO *b); 426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* BEGIN ERROR CODES */ 429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The following lines are auto generated by the script mkerr.pl. Any changes 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * made after this point may be overwritten when the script is next run. 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid ERR_load_STORE_strings(void); 433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 434656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Error codes for the STORE functions. */ 435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Function codes. */ 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_MEM_DELETE 134 438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_MEM_GENERATE 135 439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_MEM_LIST_END 168 440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_MEM_LIST_NEXT 136 441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_MEM_LIST_START 137 442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_MEM_MODIFY 169 443656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_MEM_STORE 138 444656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_GET0_CSTR 139 445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_GET0_DN 140 446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_GET0_NUMBER 141 447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_GET0_SHA1STR 142 448656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_MODIFY_CSTR 143 449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_MODIFY_DN 144 450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_MODIFY_NUMBER 145 451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_MODIFY_SHA1STR 146 452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_SET_CSTR 147 453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_SET_DN 148 454656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_SET_NUMBER 149 455656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_ATTR_INFO_SET_SHA1STR 150 456656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_CERTIFICATE 170 457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_CTRL 161 458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_DELETE_ARBITRARY 158 459656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_DELETE_CERTIFICATE 102 460656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_DELETE_CRL 103 461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_DELETE_NUMBER 104 462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_DELETE_PRIVATE_KEY 105 463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_DELETE_PUBLIC_KEY 106 464656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_GENERATE_CRL 107 465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_GENERATE_KEY 108 466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_GET_ARBITRARY 159 467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_GET_CERTIFICATE 109 468656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_GET_CRL 110 469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_GET_NUMBER 111 470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_GET_PRIVATE_KEY 112 471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_GET_PUBLIC_KEY 113 472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_CERTIFICATE_END 114 473656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_CERTIFICATE_ENDP 153 474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_CERTIFICATE_NEXT 115 475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_CERTIFICATE_START 116 476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_CRL_END 117 477656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_CRL_ENDP 154 478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_CRL_NEXT 118 479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_CRL_START 119 480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_PRIVATE_KEY_END 120 481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_PRIVATE_KEY_ENDP 155 482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_PRIVATE_KEY_NEXT 121 483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_PRIVATE_KEY_START 122 484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_PUBLIC_KEY_END 123 485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_PUBLIC_KEY_ENDP 156 486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_PUBLIC_KEY_NEXT 124 487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_LIST_PUBLIC_KEY_START 125 488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_MODIFY_ARBITRARY 162 489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_MODIFY_CERTIFICATE 163 490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_MODIFY_CRL 164 491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_MODIFY_NUMBER 165 492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_MODIFY_PRIVATE_KEY 166 493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_MODIFY_PUBLIC_KEY 167 494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_NEW_ENGINE 133 495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_NEW_METHOD 132 496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_PARSE_ATTRS_END 151 497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_PARSE_ATTRS_ENDP 172 498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_PARSE_ATTRS_NEXT 152 499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_PARSE_ATTRS_START 171 500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_REVOKE_CERTIFICATE 129 501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_REVOKE_PRIVATE_KEY 130 502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_REVOKE_PUBLIC_KEY 131 503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_STORE_ARBITRARY 157 504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_STORE_CERTIFICATE 100 505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_STORE_CRL 101 506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_STORE_NUMBER 126 507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_STORE_PRIVATE_KEY 127 508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_F_STORE_STORE_PUBLIC_KEY 128 509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Reason codes. */ 511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_ALREADY_HAS_A_VALUE 127 512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_DELETING_ARBITRARY 132 513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_DELETING_CERTIFICATE 100 514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_DELETING_KEY 101 515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_DELETING_NUMBER 102 516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_GENERATING_CRL 103 517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_GENERATING_KEY 104 518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_GETTING_ARBITRARY 133 519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_GETTING_CERTIFICATE 105 520656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_GETTING_KEY 106 521656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_GETTING_NUMBER 107 522656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_LISTING_CERTIFICATES 108 523656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_LISTING_KEYS 109 524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_MODIFYING_ARBITRARY 138 525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_MODIFYING_CERTIFICATE 139 526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_MODIFYING_CRL 140 527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_MODIFYING_NUMBER 141 528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_MODIFYING_PRIVATE_KEY 142 529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_MODIFYING_PUBLIC_KEY 143 530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_REVOKING_CERTIFICATE 110 531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_REVOKING_KEY 111 532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_STORING_ARBITRARY 134 533656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_STORING_CERTIFICATE 112 534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_STORING_KEY 113 535656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_FAILED_STORING_NUMBER 114 536656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NOT_IMPLEMENTED 128 537656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_CONTROL_FUNCTION 144 538656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_DELETE_ARBITRARY_FUNCTION 135 539656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_DELETE_NUMBER_FUNCTION 115 540656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_DELETE_OBJECT_FUNCTION 116 541656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_GENERATE_CRL_FUNCTION 117 542656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_GENERATE_OBJECT_FUNCTION 118 543656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_GET_OBJECT_ARBITRARY_FUNCTION 136 544656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_GET_OBJECT_FUNCTION 119 545656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_GET_OBJECT_NUMBER_FUNCTION 120 546656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_LIST_OBJECT_ENDP_FUNCTION 131 547656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_LIST_OBJECT_END_FUNCTION 121 548656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_LIST_OBJECT_NEXT_FUNCTION 122 549656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_LIST_OBJECT_START_FUNCTION 123 550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_MODIFY_OBJECT_FUNCTION 145 551656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_REVOKE_OBJECT_FUNCTION 124 552656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_STORE 129 553656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_STORE_OBJECT_ARBITRARY_FUNCTION 137 554656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_STORE_OBJECT_FUNCTION 125 555656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_STORE_OBJECT_NUMBER_FUNCTION 126 556656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STORE_R_NO_VALUE 130 557656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef __cplusplus 559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 562