Create error codes, compile in source.
authorDr. Stephen Henson <steve@openssl.org>
Thu, 29 May 2008 17:13:15 +0000 (17:13 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 29 May 2008 17:13:15 +0000 (17:13 +0000)
engines/Makefile
engines/e_capi.c
engines/e_capi_err.c [new file with mode: 0644]
engines/e_capi_err.h [new file with mode: 0644]

index 88f8390d0ed6db33da9505ebfba14f8279a81087..251f5661480a2193c0d5487fe962822f01a5892f 100644 (file)
@@ -20,7 +20,7 @@ TEST=
 APPS=
 
 LIB=$(TOP)/libcrypto.a
-LIBNAMES= 4758cca aep atalla cswift gmp chil nuron sureware ubsec
+LIBNAMES= 4758cca aep atalla cswift gmp chil nuron sureware ubsec capi
 
 LIBSRC=        e_4758cca.c \
        e_aep.c \
@@ -30,7 +30,8 @@ LIBSRC=       e_4758cca.c \
        e_chil.c \
        e_nuron.c \
        e_sureware.c \
-       e_ubsec.c
+       e_ubsec.c \
+       e_capi.c
 LIBOBJ= e_4758cca.o \
        e_aep.o \
        e_atalla.o \
@@ -39,7 +40,8 @@ LIBOBJ= e_4758cca.o \
        e_chil.o \
        e_nuron.o \
        e_sureware.o \
-       e_ubsec.o
+       e_ubsec.o \
+       e_capi.o
 
 SRC= $(LIBSRC)
 
@@ -52,7 +54,8 @@ HEADER=       e_4758cca_err.c e_4758cca_err.h \
        e_chil_err.c e_chil_err.h \
        e_nuron_err.c e_nuron_err.h \
        e_sureware_err.c e_sureware_err.h \
-       e_ubsec_err.c e_ubsec_err.h
+       e_ubsec_err.c e_ubsec_err.h \
+       e_capi_err.c e_capi_err.h
 
 ALL=    $(GENERAL) $(SRC) $(HEADER)
 
index b19e84b8dc5faa7ba97fa8f9e5f7f88d2a78ee9d..16f251cab00f35bc0fbe373e103421fa8552a1c7 100644 (file)
@@ -324,14 +324,14 @@ static RSA_METHOD capi_rsa_method =
 static void capi_ex_free(void *obj, void *item, CRYPTO_EX_DATA *ad,
         int ind,long argl, void *argp)
        {
-//fprintf(stderr, "Called capi_ex_free obj=%lx, idx=%d, item=%lx\n", obj, ind, item);
+/*fprintf(stderr, "Called capi_ex_free obj=%lx, idx=%d, item=%lx\n", obj, ind, item);*/
        capi_ctx_free(item);
        }
 
 static void capi_rsa_ex_free(void *obj, void *item, CRYPTO_EX_DATA *ad,
         int ind,long argl, void *argp)
        {
-//fprintf(stderr, "Called capi_rsa_free_key\n");
+/*fprintf(stderr, "Called capi_rsa_free_key\n");*/
 
        capi_free_key(item);
        }
diff --git a/engines/e_capi_err.c b/engines/e_capi_err.c
new file mode 100644 (file)
index 0000000..64e10e9
--- /dev/null
@@ -0,0 +1,172 @@
+/* e_capi_err.c */
+/* ====================================================================
+ * Copyright (c) 1999-2008 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 "e_capi_err.h"
+
+/* BEGIN ERROR CODES */
+#ifndef OPENSSL_NO_ERR
+
+#define ERR_FUNC(func) ERR_PACK(0,func,0)
+#define ERR_REASON(reason) ERR_PACK(0,0,reason)
+
+static ERR_STRING_DATA CAPI_str_functs[]=
+       {
+{ERR_FUNC(CAPI_F_CAPI_CERT_GET_FNAME), "CAPI_CERT_GET_FNAME"},
+{ERR_FUNC(CAPI_F_CAPI_CTRL),   "CAPI_CTRL"},
+{ERR_FUNC(CAPI_F_CAPI_CTX_NEW),        "CAPI_CTX_NEW"},
+{ERR_FUNC(CAPI_F_CAPI_CTX_SET_PROVNAME),       "CAPI_CTX_SET_PROVNAME"},
+{ERR_FUNC(CAPI_F_CAPI_GET_KEY),        "CAPI_GET_KEY"},
+{ERR_FUNC(CAPI_F_CAPI_GET_PROVNAME),   "CAPI_GET_PROVNAME"},
+{ERR_FUNC(CAPI_F_CAPI_GET_PROV_INFO),  "CAPI_GET_PROV_INFO"},
+{ERR_FUNC(CAPI_F_CAPI_INIT),   "CAPI_INIT"},
+{ERR_FUNC(CAPI_F_CAPI_LIST_CONTAINERS),        "CAPI_LIST_CONTAINERS"},
+{ERR_FUNC(CAPI_F_CAPI_LOAD_PRIVKEY),   "CAPI_LOAD_PRIVKEY"},
+{ERR_FUNC(CAPI_F_CAPI_OPEN_STORE),     "CAPI_OPEN_STORE"},
+{ERR_FUNC(CAPI_F_CAPI_RSA_DECRYPT),    "CAPI_RSA_DECRYPT"},
+{ERR_FUNC(CAPI_F_CAPI_RSA_PRIV_ENC),   "CAPI_RSA_PRIV_ENC"},
+{ERR_FUNC(CAPI_F_CAPI_RSA_SIGN),       "CAPI_RSA_SIGN"},
+{ERR_FUNC(CAPI_F_WIDE_TO_ASC), "WIDE_TO_ASC"},
+{0,NULL}
+       };
+
+static ERR_STRING_DATA CAPI_str_reasons[]=
+       {
+{ERR_REASON(CAPI_R_CANT_CREATE_HASH_OBJECT),"cant create hash object"},
+{ERR_REASON(CAPI_R_CANT_FIND_CAPI_CONTEXT),"cant find capi context"},
+{ERR_REASON(CAPI_R_CANT_GET_KEY)         ,"cant get key"},
+{ERR_REASON(CAPI_R_CANT_SET_HASH_VALUE)  ,"cant set hash value"},
+{ERR_REASON(CAPI_R_CRYPTACQUIRECONTEXT_ERROR),"cryptacquirecontext error"},
+{ERR_REASON(CAPI_R_CRYPTENUMPROVIDERS_ERROR),"cryptenumproviders error"},
+{ERR_REASON(CAPI_R_DECRYPT_ERROR)        ,"decrypt error"},
+{ERR_REASON(CAPI_R_ENGINE_NOT_INITIALIZED),"engine not initialized"},
+{ERR_REASON(CAPI_R_ENUMCONTAINERS_ERROR) ,"enumcontainers error"},
+{ERR_REASON(CAPI_R_ERROR_GETTING_FRIENDLY_NAME),"error getting friendly name"},
+{ERR_REASON(CAPI_R_ERROR_GETTING_KEY_PROVIDER_INFO),"error getting key provider info"},
+{ERR_REASON(CAPI_R_ERROR_OPENING_STORE)  ,"error opening store"},
+{ERR_REASON(CAPI_R_ERROR_SIGNING_HASH)   ,"error signing hash"},
+{ERR_REASON(CAPI_R_FUNCTION_NOT_SUPPORTED),"function not supported"},
+{ERR_REASON(CAPI_R_GETUSERKEY_ERROR)     ,"getuserkey error"},
+{ERR_REASON(CAPI_R_INVALID_LOOKUP_METHOD),"invalid lookup method"},
+{ERR_REASON(CAPI_R_PUBKEY_EXPORT_ERROR)  ,"pubkey export error"},
+{ERR_REASON(CAPI_R_PUBKEY_EXPORT_LENGTH_ERROR),"pubkey export length error"},
+{ERR_REASON(CAPI_R_UNKNOWN_COMMAND)      ,"unknown command"},
+{ERR_REASON(CAPI_R_UNSUPPORTED_ALGORITHM_NID),"unsupported algorithm nid"},
+{ERR_REASON(CAPI_R_UNSUPPORTED_PADDING)  ,"unsupported padding"},
+{0,NULL}
+       };
+
+#endif
+
+#ifdef CAPI_LIB_NAME
+static ERR_STRING_DATA CAPI_lib_name[]=
+        {
+{0     ,CAPI_LIB_NAME},
+{0,NULL}
+       };
+#endif
+
+
+static int CAPI_lib_error_code=0;
+static int CAPI_error_init=1;
+
+static void ERR_load_CAPI_strings(void)
+       {
+       if (CAPI_lib_error_code == 0)
+               CAPI_lib_error_code=ERR_get_next_error_library();
+
+       if (CAPI_error_init)
+               {
+               CAPI_error_init=0;
+#ifndef OPENSSL_NO_ERR
+               ERR_load_strings(CAPI_lib_error_code,CAPI_str_functs);
+               ERR_load_strings(CAPI_lib_error_code,CAPI_str_reasons);
+#endif
+
+#ifdef CAPI_LIB_NAME
+               CAPI_lib_name->error = ERR_PACK(CAPI_lib_error_code,0,0);
+               ERR_load_strings(0,CAPI_lib_name);
+#endif
+               }
+       }
+
+static void ERR_unload_CAPI_strings(void)
+       {
+       if (CAPI_error_init == 0)
+               {
+#ifndef OPENSSL_NO_ERR
+               ERR_unload_strings(CAPI_lib_error_code,CAPI_str_functs);
+               ERR_unload_strings(CAPI_lib_error_code,CAPI_str_reasons);
+#endif
+
+#ifdef CAPI_LIB_NAME
+               ERR_unload_strings(0,CAPI_lib_name);
+#endif
+               CAPI_error_init=1;
+               }
+       }
+
+static void ERR_CAPI_error(int function, int reason, char *file, int line)
+       {
+       if (CAPI_lib_error_code == 0)
+               CAPI_lib_error_code=ERR_get_next_error_library();
+       ERR_PUT_error(CAPI_lib_error_code,function,reason,file,line);
+       }
diff --git a/engines/e_capi_err.h b/engines/e_capi_err.h
new file mode 100644 (file)
index 0000000..50ad51d
--- /dev/null
@@ -0,0 +1,112 @@
+/* ====================================================================
+ * Copyright (c) 2001-2008 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).
+ *
+ */
+
+#ifndef HEADER_CAPI_ERR_H
+#define HEADER_CAPI_ERR_H
+
+/* BEGIN ERROR CODES */
+/* The following lines are auto generated by the script mkerr.pl. Any changes
+ * made after this point may be overwritten when the script is next run.
+ */
+static void ERR_load_CAPI_strings(void);
+static void ERR_unload_CAPI_strings(void);
+static void ERR_CAPI_error(int function, int reason, char *file, int line);
+#define CAPIerr(f,r) ERR_CAPI_error((f),(r),__FILE__,__LINE__)
+
+/* Error codes for the CAPI functions. */
+
+/* Function codes. */
+#define CAPI_F_CAPI_CERT_GET_FNAME                      99
+#define CAPI_F_CAPI_CTRL                                100
+#define CAPI_F_CAPI_CTX_NEW                             101
+#define CAPI_F_CAPI_CTX_SET_PROVNAME                    102
+#define CAPI_F_CAPI_GET_KEY                             103
+#define CAPI_F_CAPI_GET_PROVNAME                        104
+#define CAPI_F_CAPI_GET_PROV_INFO                       105
+#define CAPI_F_CAPI_INIT                                106
+#define CAPI_F_CAPI_LIST_CONTAINERS                     107
+#define CAPI_F_CAPI_LOAD_PRIVKEY                        108
+#define CAPI_F_CAPI_OPEN_STORE                          109
+#define CAPI_F_CAPI_RSA_DECRYPT                                 110
+#define CAPI_F_CAPI_RSA_PRIV_ENC                        111
+#define CAPI_F_CAPI_RSA_SIGN                            112
+#define CAPI_F_WIDE_TO_ASC                              113
+
+/* Reason codes. */
+#define CAPI_R_CANT_CREATE_HASH_OBJECT                  99
+#define CAPI_R_CANT_FIND_CAPI_CONTEXT                   100
+#define CAPI_R_CANT_GET_KEY                             101
+#define CAPI_R_CANT_SET_HASH_VALUE                      102
+#define CAPI_R_CRYPTACQUIRECONTEXT_ERROR                103
+#define CAPI_R_CRYPTENUMPROVIDERS_ERROR                         104
+#define CAPI_R_DECRYPT_ERROR                            105
+#define CAPI_R_ENGINE_NOT_INITIALIZED                   106
+#define CAPI_R_ENUMCONTAINERS_ERROR                     107
+#define CAPI_R_ERROR_GETTING_FRIENDLY_NAME              108
+#define CAPI_R_ERROR_GETTING_KEY_PROVIDER_INFO          109
+#define CAPI_R_ERROR_OPENING_STORE                      110
+#define CAPI_R_ERROR_SIGNING_HASH                       111
+#define CAPI_R_FUNCTION_NOT_SUPPORTED                   112
+#define CAPI_R_GETUSERKEY_ERROR                                 113
+#define CAPI_R_INVALID_LOOKUP_METHOD                    114
+#define CAPI_R_PUBKEY_EXPORT_ERROR                      115
+#define CAPI_R_PUBKEY_EXPORT_LENGTH_ERROR               116
+#define CAPI_R_UNKNOWN_COMMAND                          117
+#define CAPI_R_UNSUPPORTED_ALGORITHM_NID                118
+#define CAPI_R_UNSUPPORTED_PADDING                      119
+
+#ifdef  __cplusplus
+}
+#endif
+#endif