summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ext/digest/sha2/extconf.rb3
-rw-r--r--ext/digest/sha2/sha2init.c2
3 files changed, 8 insertions, 2 deletions
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 <nobu@ruby-lang.org>
+
+ * ext/digest/extconf.rb: use OpenSSL only when all transform
+ functions are available.
+
Wed Feb 24 00:39:17 2010 Yusuke Endoh <mame@tsg.ne.jp>
* 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"