aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTechnorama team <oss-ruby@technorama.net>2004-06-27 06:07:47 +0000
committerTechnorama team <oss-ruby@technorama.net>2004-06-27 06:07:47 +0000
commit9a7b2e4fa68cb0ab70390210d2c07491bb294fe1 (patch)
tree9bfc5b5fb4ecf3bcb66fe3d729c717fd787599c7
parent2b0a3d528f5623f28d8f4ecb7682836920e6c391 (diff)
downloadruby-openssl-history-9a7b2e4fa68cb0ab70390210d2c07491bb294fe1.tar.gz
add support for older openssl versions
-rw-r--r--extconf.rb32
-rw-r--r--openssl_missing.h18
2 files changed, 36 insertions, 14 deletions
diff --git a/extconf.rb b/extconf.rb
index 8a15c53..641b7c2 100644
--- a/extconf.rb
+++ b/extconf.rb
@@ -67,29 +67,33 @@ if !result
end
message "=== Checking for OpenSSL features... ===\n"
-have_func("HMAC_CTX_copy")
-have_func("X509_STORE_get_ex_data")
-have_func("X509_STORE_set_ex_data")
+have_func("BN_mod_add")
+have_func("BN_mod_sqr")
+have_func("BN_mod_sub")
+have_func("BN_pseudo_rand_range")
+have_func("BN_rand_range")
+have_func("CONF_get1_default_config_file")
+have_func("EVP_CIPHER_CTX_copy")
+have_func("EVP_CIPHER_CTX_set_padding")
+have_func("EVP_CipherInit_ex")
+have_func("EVP_CipherFinal_ex")
have_func("EVP_MD_CTX_create")
-have_func("EVP_MD_CTX_cleanup")
have_func("EVP_MD_CTX_destroy")
-have_func("EVP_CIPHER_CTX_copy")
-have_func("PEM_def_callback")
have_func("EVP_MD_CTX_init")
+have_func("EVP_MD_CTX_cleanup")
+have_func("EVP_DigestInit_ex")
+have_func("EVP_DigestFinal_ex")
have_func("HMAC_CTX_init")
+have_func("HMAC_CTX_copy")
have_func("HMAC_CTX_cleanup")
-have_func("EVP_CIPHER_CTX_set_padding")
+have_func("HMAC_Init_ex")
+have_func("PEM_def_callback")
+have_func("X509_STORE_get_ex_data")
+have_func("X509_STORE_set_ex_data")
have_func("X509_CRL_set_version")
have_func("X509_CRL_set_issuer_name")
have_func("X509_CRL_sort")
have_func("X509_CRL_add0_revoked")
-have_func("CONF_get1_default_config_file")
-have_func("BN_mod_sqr")
-have_func("BN_mod_add")
-have_func("BN_mod_sub")
-have_func("BN_rand_range")
-have_func("BN_pseudo_rand_range")
-have_func("CONF_get1_default_config_file")
if try_cpp("#define FOO(a, ...) foo(a, ##__VA_ARGS__)\n int x(){FOO(1,2);}\n")
$defs.push("-DHAVE_VA_ARGS_MACRO")
end
diff --git a/openssl_missing.h b/openssl_missing.h
index b77c02d..4ad301d 100644
--- a/openssl_missing.h
+++ b/openssl_missing.h
@@ -63,6 +63,20 @@ EVP_MD_CTX *EVP_MD_CTX_create(void);
int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);
void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
+#if !defined(HAVE_EVP_DIGESTINIT_EX)
+# define EVP_DigestInit_ex(ctx, md, engine) EVP_DigestInit(ctx, md)
+#endif
+#if !defined(HAVE_EVP_DIGESTFINAL_EX)
+# define EVP_DigestFinal_ex(ctx, buf, len) EVP_DigestFinal(ctx, buf, len)
+#endif
+
+#if !defined(HAVE_EVP_CIPHERINIT_EX)
+# define EVP_CipherInit_ex(ctx, type, impl, key, iv, enc) EVP_CipherInit(ctx, type, key, iv, enc)
+#endif
+#if !defined(HAVE_EVP_CIPHERFINAL_EX)
+# define EVP_CipherFinal_ex(ctx, outm, outl) EVP_CipherFinal(ctx, outm, outl)
+#endif
+
#if !defined(EVP_CIPHER_name)
# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e))
#endif
@@ -75,6 +89,10 @@ void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_type(e))
#endif
+#if !defined(HAVE_EVP_HMAC_INIT_EX)
+# define HMAC_Init_ex(ctx, key, len, digest, engine) HMAC_Init(ctx, key, len, digest)
+#endif
+
void EVP_MD_CTX_init(EVP_MD_CTX *ctx);
void HMAC_CTX_init(HMAC_CTX *ctx);
void HMAC_CTX_cleanup(HMAC_CTX *ctx);