diff options
-rwxr-xr-x | Configure | 4 | ||||
-rw-r--r-- | Makefile.in | 4 | ||||
-rw-r--r-- | crypto/engine/Makefile.in | 6 | ||||
-rw-r--r-- | crypto/engine/eng_int.h | 1 | ||||
-rw-r--r-- | crypto/engine/eng_lib.c | 1 | ||||
-rw-r--r-- | crypto/engine/eng_list.c | 1 | ||||
-rw-r--r-- | crypto/engine/tb_store.c | 105 | ||||
-rw-r--r-- | crypto/store/Makefile.in | 46 | ||||
-rw-r--r-- | crypto/store/README | 101 | ||||
-rw-r--r-- | crypto/store/build.info | 2 | ||||
-rw-r--r-- | crypto/store/str_err.c | 257 | ||||
-rw-r--r-- | crypto/store/str_lib.c | 1759 | ||||
-rw-r--r-- | crypto/store/str_locl.h | 124 | ||||
-rw-r--r-- | crypto/store/str_mem.c | 379 | ||||
-rw-r--r-- | crypto/store/str_meth.c | 276 | ||||
-rw-r--r-- | doc/crypto/engine.pod | 7 | ||||
-rw-r--r-- | include/openssl/engine.h | 7 | ||||
-rw-r--r-- | include/openssl/ossl_typ.h | 3 | ||||
-rw-r--r-- | include/openssl/store.h | 665 | ||||
-rwxr-xr-x | util/libeay.num | 10 |
20 files changed, 12 insertions, 3746 deletions
@@ -212,7 +212,7 @@ $config{sdirs} = [ "bn", "ec", "rsa", "dsa", "dh", "dso", "engine", "buffer", "bio", "stack", "lhash", "rand", "err", "evp", "asn1", "pem", "x509", "x509v3", "conf", "txt_db", "pkcs7", "pkcs12", "comp", "ocsp", "ui", - "cms", "ts", "jpake", "srp", "store", "cmac", "ct", "async", "kdf" + "cms", "ts", "jpake", "srp", "cmac", "ct", "async", "kdf" ]; # Known TLS and DTLS protocols @@ -294,7 +294,6 @@ my @disablables = ( "ssl-trace", "static-engine", "stdio", - "store", "threads", "tls", "unit-test", @@ -319,7 +318,6 @@ my %disabled = ( # "what" => "comment" [or special keyword "experimental "sctp" => "default", "shared" => "default", "ssl-trace" => "default", - "store" => "experimental", "unit-test" => "default", "zlib" => "default", "zlib-dynamic" => "default", diff --git a/Makefile.in b/Makefile.in index b4b5f0dac5..06413f3e33 100644 --- a/Makefile.in +++ b/Makefile.in @@ -411,7 +411,7 @@ rehash.time: certs build_apps build_tools touch rehash.time; \ else :; fi -test: tests +test: files tests tests: rehash @@ -490,7 +490,7 @@ tar-snap: $(TARFILE).list rm -f $(TARFILE).list ls -l $(TARFILE) -dist: +dist: $(PERL) Configure dist @$(MAKE) SDIRS='$(SDIRS)' clean @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar diff --git a/crypto/engine/Makefile.in b/crypto/engine/Makefile.in index c93021f595..dfd4794531 100644 --- a/crypto/engine/Makefile.in +++ b/crypto/engine/Makefile.in @@ -17,20 +17,20 @@ GENERAL=Makefile LIB=$(TOP)/libcrypto.a LIBSRC= eng_err.c eng_lib.c eng_list.c eng_init.c eng_ctrl.c \ eng_table.c eng_pkey.c eng_fat.c eng_all.c \ - tb_rsa.c tb_dsa.c tb_dh.c tb_rand.c tb_store.c \ + tb_rsa.c tb_dsa.c tb_dh.c tb_rand.c \ tb_cipher.c tb_digest.c tb_pkmeth.c tb_asnmth.c tb_eckey.c \ eng_openssl.c eng_cnf.c eng_dyn.c eng_cryptodev.c \ eng_rdrand.c LIBOBJ= eng_err.o eng_lib.o eng_list.o eng_init.o eng_ctrl.o \ eng_table.o eng_pkey.o eng_fat.o eng_all.o \ - tb_rsa.o tb_dsa.o tb_dh.o tb_rand.o tb_store.o \ + tb_rsa.o tb_dsa.o tb_dh.o tb_rand.o \ tb_cipher.o tb_digest.o tb_pkmeth.o tb_asnmth.o tb_eckey.o \ eng_openssl.o eng_cnf.o eng_dyn.o eng_cryptodev.o \ eng_rdrand.o SRC= $(LIBSRC) -HEADER= +HEADER= ALL= $(GENERAL) $(SRC) $(HEADER) diff --git a/crypto/engine/eng_int.h b/crypto/engine/eng_int.h index 9d58d93ecd..8122922717 100644 --- a/crypto/engine/eng_int.h +++ b/crypto/engine/eng_int.h @@ -179,7 +179,6 @@ struct engine_st { const DH_METHOD *dh_meth; const EC_KEY_METHOD *ec_meth; const RAND_METHOD *rand_meth; - const STORE_METHOD *store_meth; /* Cipher handling is via this callback */ ENGINE_CIPHERS_PTR ciphers; /* Digest handling is via this callback */ diff --git a/crypto/engine/eng_lib.c b/crypto/engine/eng_lib.c index 7b13c36502..388e8ca877 100644 --- a/crypto/engine/eng_lib.c +++ b/crypto/engine/eng_lib.c @@ -89,7 +89,6 @@ void engine_set_all_null(ENGINE *e) e->dsa_meth = NULL; e->dh_meth = NULL; e->rand_meth = NULL; - e->store_meth = NULL; e->ciphers = NULL; e->digests = NULL; e->destroy = NULL; diff --git a/crypto/engine/eng_list.c b/crypto/engine/eng_list.c index 90039a0996..cd6757f443 100644 --- a/crypto/engine/eng_list.c +++ b/crypto/engine/eng_list.c @@ -304,7 +304,6 @@ static void engine_cpy(ENGINE *dest, const ENGINE *src) dest->ec_meth = src->ec_meth; #endif dest->rand_meth = src->rand_meth; - dest->store_meth = src->store_meth; dest->ciphers = src->ciphers; dest->digests = src->digests; dest->pkey_meths = src->pkey_meths; diff --git a/crypto/engine/tb_store.c b/crypto/engine/tb_store.c deleted file mode 100644 index 84d2268879..0000000000 --- a/crypto/engine/tb_store.c +++ /dev/null @@ -1,105 +0,0 @@ -/* ==================================================================== - * Copyright (c) 2003 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#include "eng_int.h" - -/* - * If this symbol is defined then ENGINE_get_default_STORE(), the function - * that is used by STORE to hook in implementation code and cache defaults - * (etc), will display brief debugging summaries to stderr with the 'nid'. - */ -/* #define ENGINE_STORE_DEBUG */ - -static ENGINE_TABLE *store_table = NULL; -static const int dummy_nid = 1; - -void ENGINE_unregister_STORE(ENGINE *e) -{ - engine_table_unregister(&store_table, e); -} - -static void engine_unregister_all_STORE(void) -{ - engine_table_cleanup(&store_table); -} - -int ENGINE_register_STORE(ENGINE *e) -{ - if (e->store_meth) - return engine_table_register(&store_table, - engine_unregister_all_STORE, e, - &dummy_nid, 1, 0); - return 1; -} - -void ENGINE_register_all_STORE() -{ - ENGINE *e; - - for (e = ENGINE_get_first(); e; e = ENGINE_get_next(e)) - ENGINE_register_STORE(e); -} - -/* Obtains an STORE implementation from an ENGINE functional reference */ -const STORE_METHOD *ENGINE_get_STORE(const ENGINE *e) -{ - return e->store_meth; -} - -/* Sets an STORE implementation in an ENGINE structure */ -int ENGINE_set_STORE(ENGINE *e, const STORE_METHOD *store_meth) -{ - e->store_meth = store_meth; - return 1; -} diff --git a/crypto/store/Makefile.in b/crypto/store/Makefile.in deleted file mode 100644 index 0347783cc6..0000000000 --- a/crypto/store/Makefile.in +++ /dev/null @@ -1,46 +0,0 @@ -# -# OpenSSL/crypto/store/Makefile -# - -DIR= store -TOP= ../.. -CC= cc -INCLUDES= -I.. -I$(TOP) -I../../include -CFLAG=-g -MAKEFILE= Makefile -AR= ar r - -CFLAGS= $(INCLUDES) $(CFLAG) - -GENERAL=Makefile - -LIB=$(TOP)/libcrypto.a -LIBSRC= str_err.c str_lib.c str_meth.c str_mem.c -LIBOBJ= str_err.o str_lib.o str_meth.o str_mem.o - -SRC= $(LIBSRC) - -HEADER= str_locl.h - -ALL= $(GENERAL) $(SRC) $(HEADER) - -top: - (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all) - -all: lib - -lib: $(LIBOBJ) - $(AR) $(LIB) $(LIBOBJ) - $(RANLIB) $(LIB) || echo Never mind. - @touch lib - -files: - $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO - -depend: - $(TOP)/util/domd $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC) - -clean: - rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff - -# DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/crypto/store/README b/crypto/store/README deleted file mode 100644 index 3d259c6c62..0000000000 --- a/crypto/store/README +++ /dev/null @@ -1,101 +0,0 @@ -NOTE: - This is a planned replacement for X509_STORE. - It is incomplete, has compile errors, and is - not built as part of the standard configuration. - - -The STORE type -============== - -A STORE, as defined in this code section, is really a rather simple -thing which stores objects and per-object associations to a number -of attributes. What attributes are supported entirely depends on -the particular implementation of a STORE. It has some support for -generation of certain objects (for example, keys and CRLs). - - -Supported object types ----------------------- - -For now, the objects that are supported are the following: - -X.509 certificate -X.509 CRL -private key -public key -number -arbitrary (application) data - -The intention is that a STORE should be able to store everything -needed by an application that wants a cert/key store, as well as -the data a CA might need to store (this includes the serial number -counter, which explains the support for numbers). - - -Supported attribute types -------------------------- - -For now, the following attributes are supported: - -Friendly Name - the value is a normal C string -Key ID - the value is a 160 bit SHA1 hash -Issuer Key ID - the value is a 160 bit SHA1 hash -Subject Key ID - the value is a 160 bit SHA1 hash -Issuer/Serial Hash - the value is a 160 bit SHA1 hash -Issuer - the value is a X509_NAME -Serial - the value is a BIGNUM -Subject - the value is a X509_NAME -Certificate Hash - the value is a 160 bit SHA1 hash -Email - the value is a normal C string -Filename - the value is a normal C string - -It is expected that these attributes should be enough to support -the need from most, if not all, current applications. Applications -that need to do certificate verification would typically use Subject -Key ID, Issuer/Serial Hash or Subject to look up issuer certificates. -S/MIME applications would typically use Email to look up recipient -and signer certificates. - -There's added support for combined sets of attributes to search for, -with the special OR attribute. - - -Supported basic functionality ------------------------------ - -The functions that are supported through the STORE type are these: - -generate_object - for example to generate keys and CRLs -get_object - to look up one object - NOTE: this function is really rather - redundant and probably of lesser usage - than the list functions -store_object - store an object and the attributes - associated with it -modify_object - modify the attributes associated with - a specific object -revoke_object - revoke an object - NOTE: this only marks an object as - invalid, it doesn't remove the object - from the database -delete_object - remove an object from the database -list_object - list objects associated with a given - set of attributes - NOTE: this is really four functions: - list_start, list_next, list_end and - list_endp -update_store - update the internal data of the store -lock_store - lock the store -unlock_store - unlock the store - -The list functions need some extra explanation: list_start is -used to set up a lookup. That's where the attributes to use in -the search are set up. It returns a search context. list_next -returns the next object searched for. list_end closes the search. -list_endp is used to check if we have reached the end. - -A few words on the store functions as well: update_store is -typically used by a CA application to update the internal -structure of a database. This may for example involve automatic -removal of expired certificates. lock_store and unlock_store -are used for locking a store to allow exclusive writes. diff --git a/crypto/store/build.info b/crypto/store/build.info deleted file mode 100644 index 7d8e6bd4bd..0000000000 --- a/crypto/store/build.info +++ /dev/null @@ -1,2 +0,0 @@ -LIBS=../../libcrypto -SOURCE[../../libcrypto]=str_err.c str_lib.c str_meth.c str_mem.c diff --git a/crypto/store/str_err.c b/crypto/store/str_err.c deleted file mode 100644 index d0bcdbcbdb..0000000000 --- a/crypto/store/str_err.c +++ /dev/null @@ -1,257 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1999-2015 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -/* - * NOTE: this file was auto generated by the mkerr.pl script: any changes - * made to it will be overwritten when the script next updates this file, - * only reason strings will be preserved. - */ - -#include <stdio.h> -#include <openssl/err.h> -#include <openssl/store.h> - -/* BEGIN ERROR CODES */ -#ifndef OPENSSL_NO_ERR - -# define ERR_FUNC(func) ERR_PACK(ERR_LIB_STORE,func,0) -# define ERR_REASON(reason) ERR_PACK(ERR_LIB_STORE,0,reason) - -static ERR_STRING_DATA STORE_str_functs[] = { - {ERR_FUNC(STORE_F_MEM_DELETE), "mem_delete"}, - {ERR_FUNC(STORE_F_MEM_GENERATE), "mem_generate"}, - {ERR_FUNC(STORE_F_MEM_LIST_END), "mem_list_end"}, - {ERR_FUNC(STORE_F_MEM_LIST_NEXT), "mem_list_next"}, - {ERR_FUNC(STORE_F_MEM_LIST_START), "mem_list_start"}, - {ERR_FUNC(STORE_F_MEM_MODIFY), "mem_modify"}, - {ERR_FUNC(STORE_F_MEM_STORE), "mem_store"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_GET0_CSTR), - "STORE_ATTR_INFO_get0_cstr"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_GET0_DN), "STORE_ATTR_INFO_get0_dn"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_GET0_NUMBER), - "STORE_ATTR_INFO_get0_number"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_GET0_SHA1STR), - "STORE_ATTR_INFO_get0_sha1str"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_MODIFY_CSTR), - "STORE_ATTR_INFO_modify_cstr"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_MODIFY_DN), - "STORE_ATTR_INFO_modify_dn"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_MODIFY_NUMBER), - "STORE_ATTR_INFO_modify_number"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_MODIFY_SHA1STR), - "STORE_ATTR_INFO_modify_sha1str"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_SET_CSTR), "STORE_ATTR_INFO_set_cstr"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_SET_DN), "STORE_ATTR_INFO_set_dn"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_SET_NUMBER), - "STORE_ATTR_INFO_set_number"}, - {ERR_FUNC(STORE_F_STORE_ATTR_INFO_SET_SHA1STR), - "STORE_ATTR_INFO_set_sha1str"}, - {ERR_FUNC(STORE_F_STORE_CERTIFICATE), "STORE_store_certificate"}, - {ERR_FUNC(STORE_F_STORE_CTRL), "STORE_ctrl"}, - {ERR_FUNC(STORE_F_STORE_DELETE_ARBITRARY), "STORE_delete_arbitrary"}, - {ERR_FUNC(STORE_F_STORE_DELETE_CERTIFICATE), "STORE_delete_certificate"}, - {ERR_FUNC(STORE_F_STORE_DELETE_CRL), "STORE_delete_crl"}, - {ERR_FUNC(STORE_F_STORE_DELETE_NUMBER), "STORE_delete_number"}, - {ERR_FUNC(STORE_F_STORE_DELETE_PRIVATE_KEY), "STORE_delete_private_key"}, - {ERR_FUNC(STORE_F_STORE_DELETE_PUBLIC_KEY), "STORE_delete_public_key"}, - {ERR_FUNC(STORE_F_STORE_GENERATE_CRL), "STORE_generate_crl"}, - {ERR_FUNC(STORE_F_STORE_GENERATE_KEY), "STORE_generate_key"}, - {ERR_FUNC(STORE_F_STORE_GET_ARBITRARY), "STORE_get_arbitrary"}, - {ERR_FUNC(STORE_F_STORE_GET_CERTIFICATE), "STORE_get_certificate"}, - {ERR_FUNC(STORE_F_STORE_GET_CRL), "STORE_get_crl"}, - {ERR_FUNC(STORE_F_STORE_GET_NUMBER), "STORE_get_number"}, - {ERR_FUNC(STORE_F_STORE_GET_PRIVATE_KEY), "STORE_get_private_key"}, - {ERR_FUNC(STORE_F_STORE_GET_PUBLIC_KEY), "STORE_get_public_key"}, - {ERR_FUNC(STORE_F_STORE_LIST_CERTIFICATE_END), - "STORE_list_certificate_end"}, - {ERR_FUNC(STORE_F_STORE_LIST_CERTIFICATE_ENDP), - "STORE_list_certificate_endp"}, - {ERR_FUNC(STORE_F_STORE_LIST_CERTIFICATE_NEXT), - "STORE_list_certificate_next"}, - {ERR_FUNC(STORE_F_STORE_LIST_CERTIFICATE_START), - "STORE_list_certificate_start"}, - {ERR_FUNC(STORE_F_STORE_LIST_CRL_END), "STORE_list_crl_end"}, - {ERR_FUNC(STORE_F_STORE_LIST_CRL_ENDP), "STORE_list_crl_endp"}, - {ERR_FUNC(STORE_F_STORE_LIST_CRL_NEXT), "STORE_list_crl_next"}, - {ERR_FUNC(STORE_F_STORE_LIST_CRL_START), "STORE_list_crl_start"}, - {ERR_FUNC(STORE_F_STORE_LIST_PRIVATE_KEY_END), - "STORE_list_private_key_end"}, - {ERR_FUNC(STORE_F_STORE_LIST_PRIVATE_KEY_ENDP), - "STORE_list_private_key_endp"}, - {ERR_FUNC(STORE_F_STORE_LIST_PRIVATE_KEY_NEXT), - "STORE_list_private_key_next"}, - {ERR_FUNC(STORE_F_STORE_LIST_PRIVATE_KEY_START), - "STORE_list_private_key_start"}, - {ERR_FUNC(STORE_F_STORE_LIST_PUBLIC_KEY_END), - "STORE_list_public_key_end"}, - {ERR_FUNC(STORE_F_STORE_LIST_PUBLIC_KEY_ENDP), - "STORE_list_public_key_endp"}, - {ERR_FUNC(STORE_F_STORE_LIST_PUBLIC_KEY_NEXT), - "STORE_list_public_key_next"}, - {ERR_FUNC(STORE_F_STORE_LIST_PUBLIC_KEY_START), - "STORE_list_public_key_start"}, - {ERR_FUNC(STORE_F_STORE_MODIFY_ARBITRARY), "STORE_modify_arbitrary"}, - {ERR_FUNC(STORE_F_STORE_MODIFY_CERTIFICATE), "STORE_modify_certificate"}, - {ERR_FUNC(STORE_F_STORE_MODIFY_CRL), "STORE_modify_crl"}, - {ERR_FUNC(STORE_F_STORE_MODIFY_NUMBER), "STORE_modify_number"}, - {ERR_FUNC(STORE_F_STORE_MODIFY_PRIVATE_KEY), "STORE_modify_private_key"}, - {ERR_FUNC(STORE_F_STORE_MODIFY_PUBLIC_KEY), "STORE_modify_public_key"}, - {ERR_FUNC(STORE_F_STORE_NEW_ENGINE), "STORE_new_engine"}, - {ERR_FUNC(STORE_F_STORE_NEW_METHOD), "STORE_new_method"}, - {ERR_FUNC(STORE_F_STORE_PARSE_ATTRS_END), "STORE_parse_attrs_end"}, - {ERR_FUNC(STORE_F_STORE_PARSE_ATTRS_ENDP), "STORE_parse_attrs_endp"}, - {ERR_FUNC(STORE_F_STORE_PARSE_ATTRS_NEXT), "STORE_parse_attrs_next"}, - {ERR_FUNC(STORE_F_STORE_PARSE_ATTRS_START), "STORE_parse_attrs_start"}, - {ERR_FUNC(STORE_F_STORE_REVOKE_CERTIFICATE), "STORE_revoke_certificate"}, - {ERR_FUNC(STORE_F_STORE_REVOKE_PRIVATE_KEY), "STORE_revoke_private_key"}, - {ERR_FUNC(STORE_F_STORE_REVOKE_PUBLIC_KEY), "STORE_revoke_public_key"}, - {ERR_FUNC(STORE_F_STORE_STORE_ARBITRARY), "STORE_store_arbitrary"}, - {ERR_FUNC(STORE_F_STORE_STORE_CERTIFICATE), "STORE_store_certificate"}, - {ERR_FUNC(STORE_F_STORE_STORE_CRL), "STORE_store_crl"}, - {ERR_FUNC(STORE_F_STORE_STORE_NUMBER), "STORE_store_number"}, - {ERR_FUNC(STORE_F_STORE_STORE_PRIVATE_KEY), "STORE_store_private_key"}, - {ERR_FUNC(STORE_F_STORE_STORE_PUBLIC_KEY), "STORE_store_public_key"}, - {0, NULL} -}; - -static ERR_STRING_DATA STORE_str_reasons[] = { - {ERR_REASON(STORE_R_ALREADY_HAS_A_VALUE), "already has a value"}, - {ERR_REASON(STORE_R_FAILED_DELETING_ARBITRARY), - "failed deleting arbitrary"}, - {ERR_REASON(STORE_R_FAILED_DELETING_CERTIFICATE), - "failed deleting certificate"}, - {ERR_REASON(STORE_R_FAILED_DELETING_KEY), "failed deleting key"}, - {ERR_REASON(STORE_R_FAILED_DELETING_NUMBER), "failed deleting number"}, - {ERR_REASON(STORE_R_FAILED_GENERATING_CRL), "failed generating crl"}, - {ERR_REASON(STORE_R_FAILED_GENERATING_KEY), "failed generating key"}, - {ERR_REASON(STORE_R_FAILED_GETTING_ARBITRARY), - "failed getting arbitrary"}, - {ERR_REASON(STORE_R_FAILED_GETTING_CERTIFICATE), - "failed getting certificate"}, - {ERR_REASON(STORE_R_FAILED_GETTING_KEY), "failed getting key"}, - {ERR_REASON(STORE_R_FAILED_GETTING_NUMBER), "failed getting number"}, - {ERR_REASON(STORE_R_FAILED_LISTING_CERTIFICATES), - "failed listing certificates"}, - {ERR_REASON(STORE_R_FAILED_LISTING_KEYS), "failed listing keys"}, - {ERR_REASON(STORE_R_FAILED_MODIFYING_ARBITRARY), - "failed modifying arbitrary"}, - {ERR_REASON(STORE_R_FAILED_MODIFYING_CERTIFICATE), - "failed modifying certificate"}, - {ERR_REASON(STORE_R_FAILED_MODIFYING_CRL), "failed modifying crl"}, - {ERR_REASON(STORE_R_FAILED_MODIFYING_NUMBER), "failed modifying number"}, - {ERR_REASON(STORE_R_FAILED_MODIFYING_PRIVATE_KEY), - "failed modifying private key"}, - {ERR_REASON(STORE_R_FAILED_MODIFYING_PUBLIC_KEY), - "failed modifying public key"}, - {ERR_REASON(STORE_R_FAILED_REVOKING_CERTIFICATE), - "failed revoking certificate"}, - {ERR_REASON(STORE_R_FAILED_REVOKING_KEY), "failed revoking key"}, - {ERR_REASON(STORE_R_FAILED_STORING_ARBITRARY), - "failed storing arbitrary"}, - {ERR_REASON(STORE_R_FAILED_STORING_CERTIFICATE), - "failed storing certificate"}, - {ERR_REASON(STORE_R_FAILED_STORING_KEY), "failed storing key"}, - {ERR_REASON(STORE_R_FAILED_STORING_NUMBER), "failed storing number"}, - {ERR_REASON(STORE_R_NOT_IMPLEMENTED), "not implemented"}, - {ERR_REASON(STORE_R_NO_CONTROL_FUNCTION), "no control function"}, - {ERR_REASON(STORE_R_NO_DELETE_ARBITRARY_FUNCTION), - "no delete arbitrary function"}, - {ERR_REASON(STORE_R_NO_DELETE_NUMBER_FUNCTION), - "no delete number function"}, - {ERR_REASON(STORE_R_NO_DELETE_OBJECT_FUNCTION), - "no delete object function"}, - {ERR_REASON(STORE_R_NO_GENERATE_CRL_FUNCTION), - "no generate crl function"}, - {ERR_REASON(STORE_R_NO_GENERATE_OBJECT_FUNCTION), - "no generate object function"}, - {ERR_REASON(STORE_R_NO_GET_OBJECT_ARBITRARY_FUNCTION), - "no get object arbitrary function"}, - {ERR_REASON(STORE_R_NO_GET_OBJECT_FUNCTION), "no get object function"}, - {ERR_REASON(STORE_R_NO_GET_OBJECT_NUMBER_FUNCTION), - "no get object number function"}, - {ERR_REASON(STORE_R_NO_LIST_OBJECT_ENDP_FUNCTION), - "no list object endp function"}, - {ERR_REASON(STORE_R_NO_LIST_OBJECT_END_FUNCTION), - "no list object end function"}, - {ERR_REASON(STORE_R_NO_LIST_OBJECT_NEXT_FUNCTION), - "no list object next function"}, - {ERR_REASON(STORE_R_NO_LIST_OBJECT_START_FUNCTION), - "no list object start function"}, - {ERR_REASON(STORE_R_NO_MODIFY_OBJECT_FUNCTION), - "no modify object function"}, - {ERR_REASON(STORE_R_NO_REVOKE_OBJECT_FUNCTION), - "no revoke object function"}, - {ERR_REASON(STORE_R_NO_STORE), "no store"}, - {ERR_REASON(STORE_R_NO_STORE_OBJECT_ARBITRARY_FUNCTION), - "no store object arbitrary function"}, - {ERR_REASON(STORE_R_NO_STORE_OBJECT_FUNCTION), - "no store object function"}, - {ERR_REASON(STORE_R_NO_STORE_OBJECT_NUMBER_FUNCTION), - "no store object number function"}, - {ERR_REASON(STORE_R_NO_VALUE), "no value"}, - {0, NULL} -}; - -#endif - -void ERR_load_STORE_strings(void) -{ -#ifndef OPENSSL_NO_ERR - - if (ERR_func_error_string(STORE_str_functs[0].error) == NULL) { - ERR_load_strings(0, STORE_str_functs); - ERR_load_strings(0, STORE_str_reasons); - } -#endif -} diff --git a/crypto/store/str_lib.c b/crypto/store/str_lib.c deleted file mode 100644 index 881140a1de..0000000000 --- a/crypto/store/str_lib.c +++ /dev/null @@ -1,1759 +0,0 @@ -/* - * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project - * 2003. - */ -/* ==================================================================== - * Copyright (c) 2003 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#include <string.h> -#include <openssl/bn.h> -#include <openssl/err.h> -#ifndef OPENSSL_NO_ENGINE -# include <openssl/engine.h> -#endif -#include <openssl/sha.h> -#include <openssl/x509.h> -#include "str_locl.h" - -const char *const STORE_object_type_string[STORE_OBJECT_TYPE_NUM + 1] = { - 0, - "X.509 Certificate", - "X.509 CRL", - "Private Key", - "Public Key", - "Number", - "Arbitrary Data" -}; - -const int STORE_param_sizes[STORE_PARAM_TYPE_NUM + 1] = { - 0, - sizeof(int), /* EVP_TYPE */ - sizeof(size_t), /* BITS */ - -1, /* KEY_PARAMETERS */ - 0 /* KEY_NO_PARAMETERS */ -}; - -const int STORE_attr_sizes[STORE_ATTR_TYPE_NUM + 1] = { - 0, - -1, /* FRIENDLYNAME: C string */ - SHA_DIGEST_LENGTH, /* KEYID: SHA1 digest, 160 bits */ - SHA_DIGEST_LENGTH, /* ISSUERKEYID: SHA1 digest, 160 bits */ - SHA_DIGEST_LENGTH, /* SUBJECTKEYID: SHA1 digest, 160 bits */ - SHA_DIGEST_LENGTH, /* ISSUERSERIALHASH: SHA1 digest, 160 bits */ - sizeof(X509_NAME *), /* ISSUER: X509_NAME * */ - sizeof(BIGNUM *), /* SERIAL: BIGNUM * */ - sizeof(X509_NAME *), /* SUBJECT: X509_NAME * */ - SHA_DIGEST_LENGTH, /* CERTHASH: SHA1 digest, 160 bits */ - -1, /* EMAIL: C string */ - -1, /* FILENAME: C string */ -}; - -STORE *STORE_new_method(const STORE_METHOD *method) -{ - STORE *ret; - - if (method == NULL) { - STOREerr(STORE_F_STORE_NEW_METHOD, ERR_R_PASSED_NULL_PARAMETER); - return NULL; - } - - ret = OPENSSL_malloc(sizeof(*ret)); - if (ret == NULL) { - STOREerr(STORE_F_STORE_NEW_METHOD, ERR_R_MALLOC_FAILURE); - return NULL; - } - - ret->meth = method; - - CRYPTO_new_ex_data(CRYPTO_EX_INDEX_STORE, ret, &ret->ex_data); - if (ret->meth->init && !ret->meth->init(ret)) { - STORE_free(ret); - ret = NULL; - } - return ret; -} - -STORE *STORE_new_engine(ENGINE *engine) -{ - STORE *ret = NULL; - ENGINE *e = engine; - const STORE_METHOD *meth = 0; - -#ifdef OPENSSL_NO_ENGINE - e = NULL; -#else - if (engine) { - if (!ENGINE_init(engine)) { - STOREerr(STORE_F_STORE_NEW_ENGINE, ERR_R_ENGINE_LIB); - return NULL; - } - e = engine; - } else { |