1*e1997b9aSAndroid Build Coastguard Worker /* 2*e1997b9aSAndroid Build Coastguard Worker * Copyright 2013 The Android Open Source Project 3*e1997b9aSAndroid Build Coastguard Worker * 4*e1997b9aSAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 5*e1997b9aSAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions 6*e1997b9aSAndroid Build Coastguard Worker * are met: 7*e1997b9aSAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 8*e1997b9aSAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 9*e1997b9aSAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 10*e1997b9aSAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 11*e1997b9aSAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 12*e1997b9aSAndroid Build Coastguard Worker * 13*e1997b9aSAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY 14*e1997b9aSAndroid Build Coastguard Worker * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15*e1997b9aSAndroid Build Coastguard Worker * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16*e1997b9aSAndroid Build Coastguard Worker * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY 17*e1997b9aSAndroid Build Coastguard Worker * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18*e1997b9aSAndroid Build Coastguard Worker * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19*e1997b9aSAndroid Build Coastguard Worker * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 20*e1997b9aSAndroid Build Coastguard Worker * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21*e1997b9aSAndroid Build Coastguard Worker * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22*e1997b9aSAndroid Build Coastguard Worker * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23*e1997b9aSAndroid Build Coastguard Worker * 24*e1997b9aSAndroid Build Coastguard Worker */ 25*e1997b9aSAndroid Build Coastguard Worker 26*e1997b9aSAndroid Build Coastguard Worker /* For ENGINE method registration purposes. */ 27*e1997b9aSAndroid Build Coastguard Worker extern const char* kKeystoreEngineId; 28*e1997b9aSAndroid Build Coastguard Worker 29*e1997b9aSAndroid Build Coastguard Worker extern int dsa_key_handle; 30*e1997b9aSAndroid Build Coastguard Worker extern int rsa_key_handle; 31*e1997b9aSAndroid Build Coastguard Worker 32*e1997b9aSAndroid Build Coastguard Worker /* Keyhandles for ENGINE metadata */ 33*e1997b9aSAndroid Build Coastguard Worker int keyhandle_new(void*, void*, CRYPTO_EX_DATA* ad, int idx, long, void*); 34*e1997b9aSAndroid Build Coastguard Worker void keyhandle_free(void *, void *ptr, CRYPTO_EX_DATA*, int, long, void*); 35*e1997b9aSAndroid Build Coastguard Worker int keyhandle_dup(CRYPTO_EX_DATA* to, CRYPTO_EX_DATA*, void *ptrRef, int idx, long, void *); 36*e1997b9aSAndroid Build Coastguard Worker 37*e1997b9aSAndroid Build Coastguard Worker /* For EC_EX_DATA stuff */ 38*e1997b9aSAndroid Build Coastguard Worker void *ex_data_dup(void *); 39*e1997b9aSAndroid Build Coastguard Worker void ex_data_free(void *); 40*e1997b9aSAndroid Build Coastguard Worker void ex_data_clear_free(void *); 41*e1997b9aSAndroid Build Coastguard Worker 42*e1997b9aSAndroid Build Coastguard Worker /* ECDSA */ 43*e1997b9aSAndroid Build Coastguard Worker int ecdsa_register(ENGINE *); 44*e1997b9aSAndroid Build Coastguard Worker int ecdsa_pkey_setup(ENGINE *, EVP_PKEY*, const char*); 45*e1997b9aSAndroid Build Coastguard Worker 46*e1997b9aSAndroid Build Coastguard Worker /* DSA */ 47*e1997b9aSAndroid Build Coastguard Worker int dsa_register(ENGINE *); 48*e1997b9aSAndroid Build Coastguard Worker int dsa_pkey_setup(ENGINE *, EVP_PKEY*, const char*); 49*e1997b9aSAndroid Build Coastguard Worker 50*e1997b9aSAndroid Build Coastguard Worker /* RSA */ 51*e1997b9aSAndroid Build Coastguard Worker int rsa_register(ENGINE *); 52*e1997b9aSAndroid Build Coastguard Worker int rsa_pkey_setup(ENGINE *, EVP_PKEY*, const char*); 53