Commit d9090acd authored by Richard Levitte's avatar Richard Levitte
Browse files

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

well to be able to use the CHIL engine.
PR: 281
parent 72951df7
Loading
Loading
Loading
Loading
+16 −8
Original line number Diff line number Diff line
@@ -560,8 +560,9 @@ static int hwcrhk_init(ENGINE *e)

	/* Check if the application decided to support dynamic locks,
	   and if it does, use them. */
	if (disable_mutex_callbacks == 0 &&
		CRYPTO_get_dynlock_create_callback() != NULL &&
	if (disable_mutex_callbacks == 0)
		{
		if (CRYPTO_get_dynlock_create_callback() != NULL &&
			CRYPTO_get_dynlock_lock_callback() != NULL &&
			CRYPTO_get_dynlock_destroy_callback() != NULL)
			{
@@ -570,6 +571,13 @@ static int hwcrhk_init(ENGINE *e)
			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
	 * accelerator! */
+2 −1
Original line number Diff line number Diff line
/* hw_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
 * modification, are permitted provided that the following conditions
@@ -86,6 +86,7 @@ static ERR_STRING_DATA HWCRHK_str_reasons[]=
{HWCRHK_R_CHIL_ERROR                     ,"chil error"},
{HWCRHK_R_CTRL_COMMAND_NOT_IMPLEMENTED   ,"ctrl command not implemented"},
{HWCRHK_R_DSO_FAILURE                    ,"dso failure"},
{HWCRHK_R_LOCKING_MISSING                ,"locking missing"},
{HWCRHK_R_MISSING_KEY_COMPONENTS         ,"missing key components"},
{HWCRHK_R_NOT_INITIALISED                ,"not initialised"},
{HWCRHK_R_NOT_LOADED                     ,"not loaded"},
+1 −0
Original line number Diff line number Diff 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_CTRL_COMMAND_NOT_IMPLEMENTED		 103
#define HWCRHK_R_DSO_FAILURE				 104
#define HWCRHK_R_LOCKING_MISSING			 114
#define HWCRHK_R_MISSING_KEY_COMPONENTS			 105
#define HWCRHK_R_NOT_INITIALISED			 106
#define HWCRHK_R_NOT_LOADED				 107