aboutsummaryrefslogtreecommitdiffstats
path: root/ext/openssl/openssl_missing.c
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-04-20 13:13:45 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-04-27 23:07:41 +0900
commit13b33a2163ed52d4683f3901ed1f90ad93aa8474 (patch)
tree230d27d352d2955c4d1058232ec6f342ccb21159 /ext/openssl/openssl_missing.c
parent435fe7bdd0980e3fdb5483986a784fa2ba4bc46a (diff)
downloadruby-13b33a2163ed52d4683f3901ed1f90ad93aa8474.tar.gz
ext/openssl: use EVP_CIPHER_CTX_{new,free} to allocate EVP_CIPHER_CTX
EVP_CIPHER_CTX was made opaque in OpenSSL 1.1.0
Diffstat (limited to 'ext/openssl/openssl_missing.c')
-rw-r--r--ext/openssl/openssl_missing.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/ext/openssl/openssl_missing.c b/ext/openssl/openssl_missing.c
index 91797a8d7d..2e1e534854 100644
--- a/ext/openssl/openssl_missing.c
+++ b/ext/openssl/openssl_missing.c
@@ -18,6 +18,29 @@
#include "openssl_missing.h"
+/*** added in 0.9.8X ***/
+#if !defined(HAVE_EVP_CIPHER_CTX_NEW)
+EVP_CIPHER_CTX *
+EVP_CIPHER_CTX_new(void)
+{
+ EVP_CIPHER_CTX *ctx = OPENSSL_malloc(sizeof(EVP_CIPHER_CTX));
+ if (!ctx)
+ return NULL;
+ EVP_CIPHER_CTX_init(ctx);
+ return ctx;
+}
+#endif
+
+#if !defined(HAVE_EVP_CIPHER_CTX_FREE)
+void
+EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
+{
+ EVP_CIPHER_CTX_cleanup(ctx);
+ OPENSSL_free(ctx);
+}
+#endif
+
+/*** added in 1.0.0 ***/
#if !defined(HAVE_HMAC_CTX_COPY)
void
HMAC_CTX_copy(HMAC_CTX *out, HMAC_CTX *in)