diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb index 4f218562b..bc74487c6 100644 --- a/ext/openssl/extconf.rb +++ b/ext/openssl/extconf.rb @@ -165,6 +165,7 @@ def find_openssl_library have_func("X509_get0_notBefore") have_func("SSL_SESSION_get_protocol_version") have_func("EVP_PBE_scrypt") +have_func("CMS_sign") Logging::message "=== Checking done. ===\n" diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c index 6eb25166d..b5b121e00 100644 --- a/ext/openssl/ossl.c +++ b/ext/openssl/ossl.c @@ -1202,7 +1202,9 @@ Init_openssl(void) Init_ossl_ns_spki(); Init_ossl_pkcs12(); Init_ossl_pkcs7(); +#if defined(HAVE_CMS_SIGN) Init_ossl_cms(); +#endif Init_ossl_pkey(); Init_ossl_rand(); Init_ossl_ssl(); diff --git a/ext/openssl/ossl.h b/ext/openssl/ossl.h index 18f1dbda3..81b2a8387 100644 --- a/ext/openssl/ossl.h +++ b/ext/openssl/ossl.h @@ -24,7 +24,9 @@ #include #include #include +#if defined(HAVE_CMS_SIGN) #include +#endif #include #include #include diff --git a/ext/openssl/ossl_cms.c b/ext/openssl/ossl_cms.c index 9ec65b8f7..2367451da 100644 --- a/ext/openssl/ossl_cms.c +++ b/ext/openssl/ossl_cms.c @@ -11,6 +11,7 @@ */ #include "ossl.h" +#if defined(HAVE_CMS_SIGN) /* * The CMS_ContentInfo is the primary data structure which this module creates and maintains * Is is called OpenSSL::CMS::ContentInfo in ruby. @@ -496,3 +497,5 @@ Init_ossl_cms(void) DefCMSConst(STREAM); DefCMSConst(PARTIAL); } + +#endif /* HAVE_CMS_SIGN */