[GB.OPENSSL]
* NEW: Require OpenSSL >= 1.0.0 because we need EVP_MD_do_all(). * BUG: Revert changes from #7875. git-svn-id: svn://localhost/gambas/trunk@7876 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
parent
b2e45bf929
commit
842a1583be
2 changed files with 1 additions and 51 deletions
|
@ -9,7 +9,7 @@ AC_PROG_LIBTOOL
|
||||||
|
|
||||||
GB_COMPONENT_PKG_CONFIG(
|
GB_COMPONENT_PKG_CONFIG(
|
||||||
openssl, OPENSSL, gb.openssl, [src],
|
openssl, OPENSSL, gb.openssl, [src],
|
||||||
libcrypto)
|
'openssl >= 1.0.0' libcrypto)
|
||||||
|
|
||||||
AC_OUTPUT(Makefile src/Makefile)
|
AC_OUTPUT(Makefile src/Makefile)
|
||||||
GB_PRINT_MESSAGES
|
GB_PRINT_MESSAGES
|
||||||
|
|
|
@ -139,55 +139,6 @@ GB_DESC CDigest[] = {
|
||||||
* the behaviour described in their manpage.
|
* the behaviour described in their manpage.
|
||||||
*/
|
*/
|
||||||
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||||
/*
|
|
||||||
* Special treatment for OpenSSL 0.9.8*. The version hex below is 0.9.8zh.
|
|
||||||
* The *_new() and *_free() routines were called *_create() and *_destroy()
|
|
||||||
* there.
|
|
||||||
*/
|
|
||||||
#if OPENSSL_VERSION_NUMBER <= 0x0090821fL
|
|
||||||
static int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
|
|
||||||
{
|
|
||||||
/* Don't assume ctx->md_data was cleaned in EVP_Digest_Final,
|
|
||||||
* because sometimes only copies of the context are ever finalised.
|
|
||||||
*/
|
|
||||||
if (ctx->digest && ctx->digest->cleanup
|
|
||||||
&& !M_EVP_MD_CTX_test_flags(ctx,EVP_MD_CTX_FLAG_CLEANED))
|
|
||||||
ctx->digest->cleanup(ctx);
|
|
||||||
if (ctx->digest && ctx->digest->ctx_size && ctx->md_data
|
|
||||||
&& !M_EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE)) {
|
|
||||||
OPENSSL_cleanse(ctx->md_data,ctx->digest->ctx_size);
|
|
||||||
OPENSSL_free(ctx->md_data);
|
|
||||||
}
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
|
||||||
if(ctx->engine)
|
|
||||||
/* The EVP_MD we used belongs to an ENGINE, release the
|
|
||||||
* functional reference we held for this reason. */
|
|
||||||
do_engine_finish(ctx->engine);
|
|
||||||
#endif
|
|
||||||
memset(ctx,'\0',sizeof *ctx);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void EVP_MD_CTX_init(EVP_MD_CTX *ctx)
|
|
||||||
{
|
|
||||||
memset(ctx, '\0', sizeof *ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
static EVP_MD_CTX *EVP_MD_CTX_new(void)
|
|
||||||
{
|
|
||||||
EVP_MD_CTX *ctx = OPENSSL_malloc(sizeof *ctx);
|
|
||||||
|
|
||||||
if (ctx)
|
|
||||||
EVP_MD_CTX_init(ctx);
|
|
||||||
return ctx;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
|
|
||||||
{
|
|
||||||
EVP_MD_CTX_cleanup(ctx);
|
|
||||||
OPENSSL_free(ctx);
|
|
||||||
}
|
|
||||||
#else /* Anything recent */
|
|
||||||
static void OPENSSL_clear_free(void *str, size_t num)
|
static void OPENSSL_clear_free(void *str, size_t num)
|
||||||
{
|
{
|
||||||
OPENSSL_cleanse(str, num);
|
OPENSSL_cleanse(str, num);
|
||||||
|
@ -240,7 +191,6 @@ static void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
|
||||||
OPENSSL_free(ctx);
|
OPENSSL_free(ctx);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/**G
|
/**G
|
||||||
* Hash the given string using this digest algorithm.
|
* Hash the given string using this digest algorithm.
|
||||||
|
|
Loading…
Reference in a new issue