diff --git a/ChangeLog b/ChangeLog index bbc75625d8..c0f9678018 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Feb 24 09:31:33 2010 Nobuyoshi Nakada + + * ext/digest/extconf.rb: use OpenSSL only when all transform + functions are available. + Wed Feb 24 00:39:17 2010 Yusuke Endoh * string.c (str_new_empty): String#split, partition, rpartition diff --git a/ext/digest/sha2/extconf.rb b/ext/digest/sha2/extconf.rb index e546e3ac12..d4af8702aa 100644 --- a/ext/digest/sha2/extconf.rb +++ b/ext/digest/sha2/extconf.rb @@ -11,9 +11,10 @@ $objs = [ "sha2init.#{$OBJEXT}" ] dir_config("openssl") if !with_config("bundled-sha2") && - have_library("crypto") && have_header("openssl/sha.h") && + have_library("crypto") && %w[SHA256 SHA512].all? {|d| have_func("#{d}_Transform", "openssl/sha.h")} $objs << "sha2ossl.#{$OBJEXT}" + $defs << "-DSHA2_USE_OPENSSL" else have_type("u_int8_t") $objs << "sha2.#{$OBJEXT}" diff --git a/ext/digest/sha2/sha2init.c b/ext/digest/sha2/sha2init.c index 25ef6d2546..13df4bcb78 100644 --- a/ext/digest/sha2/sha2init.c +++ b/ext/digest/sha2/sha2init.c @@ -2,7 +2,7 @@ /* $Id$ */ #include "digest.h" -#if defined(HAVE_OPENSSL_SHA_H) && defined(HAVE_SHA256_TRANSFORM) && defined(HAVE_SHA512_TRANSFORM) +#if defined(SHA2_USE_OPENSSL) #include "sha2ossl.h" #else #include "sha2.h"