提交 38d6e4bb 编写于 作者: R Richard Levitte

If an application supports static locks, it MUST support dynamic locks as

well to be able to use the CHIL engine.
PR: 281
上级 ced621e3
...@@ -559,15 +559,23 @@ static int hwcrhk_init(ENGINE *e) ...@@ -559,15 +559,23 @@ static int hwcrhk_init(ENGINE *e)
/* Check if the application decided to support dynamic locks, /* Check if the application decided to support dynamic locks,
and if it does, use them. */ and if it does, use them. */
if (disable_mutex_callbacks == 0 && if (disable_mutex_callbacks == 0)
CRYPTO_get_dynlock_create_callback() != NULL &&
CRYPTO_get_dynlock_lock_callback() != NULL &&
CRYPTO_get_dynlock_destroy_callback() != NULL)
{ {
hwcrhk_globals.mutex_init = hwcrhk_mutex_init; if (CRYPTO_get_dynlock_create_callback() != NULL &&
hwcrhk_globals.mutex_acquire = hwcrhk_mutex_lock; CRYPTO_get_dynlock_lock_callback() != NULL &&
hwcrhk_globals.mutex_release = hwcrhk_mutex_unlock; CRYPTO_get_dynlock_destroy_callback() != NULL)
hwcrhk_globals.mutex_destroy = hwcrhk_mutex_destroy; {
hwcrhk_globals.mutex_init = hwcrhk_mutex_init;
hwcrhk_globals.mutex_acquire = hwcrhk_mutex_lock;
hwcrhk_globals.mutex_release = hwcrhk_mutex_unlock;
hwcrhk_globals.mutex_destroy = hwcrhk_mutex_destroy;
}
else if (CRYPTO_get_locking_callback() != NULL)
{
HWCRHKerr(HWCRHK_F_HWCRHK_INIT,HWCRHK_R_LOCKING_MISSING);
ERR_add_error_data(1,"You HAVE to add dynamic locking callbacks via CRYPTO_set_dynlock_{create,lock,destroy}_callback()");
goto err;
}
} }
/* Try and get a context - if not, we may have a DSO but no /* Try and get a context - if not, we may have a DSO but no
......
/* hw_ncipher_err.c */ /* e_ncipher_err.c */
/* ==================================================================== /* ====================================================================
* Copyright (c) 1999 The OpenSSL Project. All rights reserved. * Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
...@@ -86,6 +86,7 @@ static ERR_STRING_DATA HWCRHK_str_reasons[]= ...@@ -86,6 +86,7 @@ static ERR_STRING_DATA HWCRHK_str_reasons[]=
{HWCRHK_R_CHIL_ERROR ,"chil error"}, {HWCRHK_R_CHIL_ERROR ,"chil error"},
{HWCRHK_R_CTRL_COMMAND_NOT_IMPLEMENTED ,"ctrl command not implemented"}, {HWCRHK_R_CTRL_COMMAND_NOT_IMPLEMENTED ,"ctrl command not implemented"},
{HWCRHK_R_DSO_FAILURE ,"dso failure"}, {HWCRHK_R_DSO_FAILURE ,"dso failure"},
{HWCRHK_R_LOCKING_MISSING ,"locking missing"},
{HWCRHK_R_MISSING_KEY_COMPONENTS ,"missing key components"}, {HWCRHK_R_MISSING_KEY_COMPONENTS ,"missing key components"},
{HWCRHK_R_NOT_INITIALISED ,"not initialised"}, {HWCRHK_R_NOT_INITIALISED ,"not initialised"},
{HWCRHK_R_NOT_LOADED ,"not loaded"}, {HWCRHK_R_NOT_LOADED ,"not loaded"},
......
...@@ -84,6 +84,7 @@ static void ERR_HWCRHK_error(int function, int reason, char *file, int line); ...@@ -84,6 +84,7 @@ static void ERR_HWCRHK_error(int function, int reason, char *file, int line);
#define HWCRHK_R_CHIL_ERROR 102 #define HWCRHK_R_CHIL_ERROR 102
#define HWCRHK_R_CTRL_COMMAND_NOT_IMPLEMENTED 103 #define HWCRHK_R_CTRL_COMMAND_NOT_IMPLEMENTED 103
#define HWCRHK_R_DSO_FAILURE 104 #define HWCRHK_R_DSO_FAILURE 104
#define HWCRHK_R_LOCKING_MISSING 114
#define HWCRHK_R_MISSING_KEY_COMPONENTS 105 #define HWCRHK_R_MISSING_KEY_COMPONENTS 105
#define HWCRHK_R_NOT_INITIALISED 106 #define HWCRHK_R_NOT_INITIALISED 106
#define HWCRHK_R_NOT_LOADED 107 #define HWCRHK_R_NOT_LOADED 107
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册