35d7791
diff -up efl-1.18.2/src/lib/eet/eet_cipher.c.fixup efl-1.18.2/src/lib/eet/eet_cipher.c
35d7791
--- efl-1.18.2/src/lib/eet/eet_cipher.c.fixup	2016-10-19 10:31:31.601037298 -0400
35d7791
+++ efl-1.18.2/src/lib/eet/eet_cipher.c	2016-10-19 10:43:13.258515381 -0400
35d7791
@@ -475,9 +475,15 @@ eet_identity_sign(FILE    *fp,
35d7791
    gnutls_datum_t signum = { NULL, 0 };
35d7791
    gnutls_privkey_t privkey;
35d7791
 # else /* ifdef HAVE_GNUTLS */
35d7791
-   EVP_MD_CTX md_ctx;
35d7791
    unsigned int sign_len = 0;
35d7791
    int cert_len = 0;
35d7791
+#  if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   EVP_MD_CTX *md_ctx = EVP_MD_CTX_new();
35d7791
+   if (md_ctx == NULL)
35d7791
+     return EET_ERROR_BAD_OBJECT;
35d7791
+#  else /* OPENSSL_VERSION_NUMBER >= 0x10100000L */
35d7791
+   EVP_MD_CTX md_ctx;
35d7791
+#  endif /* if OPENSSL_VERSION_NUMBER >= 0x10100000L */
35d7791
 # endif /* ifdef HAVE_GNUTLS */
35d7791
 
35d7791
    /* A few check and flush pending write. */
35d7791
@@ -560,6 +566,15 @@ eet_identity_sign(FILE    *fp,
35d7791
         goto on_error;
35d7791
      }
35d7791
 
35d7791
+#  if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   /* Do the signature. */
35d7791
+   EVP_SignInit(md_ctx, EVP_sha1());
35d7791
+   EVP_SignUpdate(md_ctx, data, st_buf.st_size);
35d7791
+   err = EVP_SignFinal(md_ctx,
35d7791
+                       sign,
35d7791
+                       (unsigned int *)&sign_len,
35d7791
+                       key->private_key);
35d7791
+#  else
35d7791
    /* Do the signature. */
35d7791
    EVP_SignInit(&md_ctx, EVP_sha1());
35d7791
    EVP_SignUpdate(&md_ctx, data, st_buf.st_size);
35d7791
@@ -567,6 +582,7 @@ eet_identity_sign(FILE    *fp,
35d7791
                        sign,
35d7791
                        (unsigned int *)&sign_len,
35d7791
                        key->private_key);
35d7791
+#  endif
35d7791
    if (err != 1)
35d7791
      {
35d7791
         ERR_print_errors_fp(stdout);
35d7791
@@ -615,6 +631,9 @@ on_error:
35d7791
 # else /* ifdef HAVE_GNUTLS */
35d7791
    if (cert)
35d7791
      OPENSSL_free(cert);
35d7791
+#  if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   EVP_MD_CTX_free(md_ctx);
35d7791
+#  endif /* if OPENSSL_VERSION_NUMBER >= 0x10100000L */
35d7791
 
35d7791
 # endif /* ifdef HAVE_GNUTLS */
35d7791
    if (sign)
35d7791
@@ -739,7 +758,13 @@ eet_identity_check(const void   *data_ba
35d7791
    const unsigned char *tmp;
35d7791
    EVP_PKEY *pkey;
35d7791
    X509 *x509;
35d7791
+#  if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   EVP_MD_CTX *md_ctx = EVP_MD_CTX_new();
35d7791
+   if (md_ctx == NULL)
35d7791
+     return NULL;
35d7791
+#  else /* OPENSSL_VERSION_NUMBER >= 0x10100000L */
35d7791
    EVP_MD_CTX md_ctx;
35d7791
+#  endif /* if OPENSSL_VERSION_NUMBER >= 0x10100000L */
35d7791
    int err;
35d7791
 
35d7791
    /* Strange but d2i_X509 seems to put 0 all over the place. */
35d7791
@@ -757,10 +782,17 @@ eet_identity_check(const void   *data_ba
35d7791
         return NULL;
35d7791
      }
35d7791
 
35d7791
+#  if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   /* Verify the signature */
35d7791
+   EVP_VerifyInit(md_ctx, EVP_sha1());
35d7791
+   EVP_VerifyUpdate(md_ctx, data_base, data_length);
35d7791
+   err = EVP_VerifyFinal(md_ctx, sign, sign_len, pkey);
35d7791
+#  else /* OPENSSL_VERSION_NUMBER >= 0x10100000L */
35d7791
    /* Verify the signature */
35d7791
    EVP_VerifyInit(&md_ctx, EVP_sha1());
35d7791
    EVP_VerifyUpdate(&md_ctx, data_base, data_length);
35d7791
    err = EVP_VerifyFinal(&md_ctx, sign, sign_len, pkey);
35d7791
+#  endif /* OPENSSL_VERSION_NUMBER >= 0x10100000L */
35d7791
 
35d7791
    X509_free(x509);
35d7791
    EVP_PKEY_free(pkey);
35d7791
@@ -800,6 +832,9 @@ eet_identity_check(const void   *data_ba
35d7791
    raw_signature_base = NULL;
35d7791
    raw_signature_length = NULL;
35d7791
    x509_length = NULL;
35d7791
+#  if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   EVP_MD_CTX_free(md_ctx);
35d7791
+#  endif /* if OPENSSL_VERSION_NUMBER >= 0x10100000L */
35d7791
    return NULL;
35d7791
 #endif /* ifdef HAVE_SIGNATURE */
35d7791
 }
35d7791
diff -up efl-1.18.2/src/lib/emile/emile_cipher_openssl.c.fixup efl-1.18.2/src/lib/emile/emile_cipher_openssl.c
35d7791
--- efl-1.18.2/src/lib/emile/emile_cipher_openssl.c.fixup	2016-10-19 10:10:05.735351607 -0400
35d7791
+++ efl-1.18.2/src/lib/emile/emile_cipher_openssl.c	2016-10-19 10:30:27.529498249 -0400
35d7791
@@ -87,7 +87,11 @@ emile_binbuf_cipher(Emile_Cipher_Algorit
35d7791
    unsigned int crypted_length;
35d7791
    int opened = 0;
35d7791
    /* Openssl declarations*/
35d7791
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   EVP_CIPHER_CTX *ctx;
35d7791
+#else
35d7791
    EVP_CIPHER_CTX ctx;
35d7791
+#endif
35d7791
    unsigned int *buffer = NULL;
35d7791
    int tmp_len;
35d7791
 
35d7791
@@ -134,17 +138,43 @@ emile_binbuf_cipher(Emile_Cipher_Algorit
35d7791
 
35d7791
    /* Openssl create the corresponding cipher
35d7791
       AES with a 256 bit key, Cipher Block Chaining mode */
35d7791
-   EVP_CIPHER_CTX_init(&ctx;;
35d7791
-   if (!EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, ik, iv))
35d7791
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   ctx = EVP_CIPHER_CTX_new();
35d7791
+   if (ctx == NULL)
35d7791
+     goto on_error;
35d7791
+
35d7791
+   opened = 1;
35d7791
+
35d7791
+   if (!EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, ik, iv))
35d7791
      goto on_error;
35d7791
+#else
35d7791
+   EVP_CIPHER_CTX_init(&ctx;;
35d7791
 
35d7791
    opened = 1;
35d7791
 
35d7791
+   if (!EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, ik, iv))
35d7791
+     goto on_error;
35d7791
+#endif
35d7791
+
35d7791
    memset(iv, 0, sizeof (iv));
35d7791
    memset(ik, 0, sizeof (ik));
35d7791
 
35d7791
    pointer = (unsigned char*) eina_binbuf_string_get(result);
35d7791
 
35d7791
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   /* Openssl encrypt */
35d7791
+   if (!EVP_EncryptUpdate(ctx, pointer + sizeof (int), &tmp_len,
35d7791
+                          (unsigned char *)buffer,
35d7791
+                          eina_binbuf_length_get(data) + sizeof(unsigned int)))
35d7791
+     goto on_error;
35d7791
+
35d7791
+   /* Openssl close the cipher */
35d7791
+   if (!EVP_EncryptFinal_ex(ctx, pointer + sizeof (int) + tmp_len,
35d7791
+                            &tmp_len))
35d7791
+     goto on_error;
35d7791
+
35d7791
+   EVP_CIPHER_CTX_free(ctx);
35d7791
+#else
35d7791
    /* Openssl encrypt */
35d7791
    if (!EVP_EncryptUpdate(&ctx, pointer + sizeof (int), &tmp_len,
35d7791
                           (unsigned char *)buffer,
35d7791
@@ -157,6 +187,8 @@ emile_binbuf_cipher(Emile_Cipher_Algorit
35d7791
      goto on_error;
35d7791
 
35d7791
    EVP_CIPHER_CTX_cleanup(&ctx;;
35d7791
+#endif
35d7791
+
35d7791
    free(buffer);
35d7791
 
35d7791
    return result;
35d7791
@@ -167,8 +199,11 @@ on_error:
35d7791
 
35d7791
    /* Openssl error */
35d7791
    if (opened)
35d7791
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+     EVP_CIPHER_CTX_free(ctx);
35d7791
+#else
35d7791
      EVP_CIPHER_CTX_cleanup(&ctx;;
35d7791
-
35d7791
+#endif
35d7791
    free(buffer);
35d7791
 
35d7791
    /* General error */
35d7791
@@ -186,7 +221,11 @@ emile_binbuf_decipher(Emile_Cipher_Algor
35d7791
 {
35d7791
    Eina_Binbuf *result = NULL;
35d7791
    unsigned int *over;
35d7791
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   EVP_CIPHER_CTX *ctx;
35d7791
+#else
35d7791
    EVP_CIPHER_CTX ctx;
35d7791
+#endif
35d7791
    unsigned char ik[MAX_KEY_LEN];
35d7791
    unsigned char iv[MAX_IV_LEN];
35d7791
    unsigned char key_material[MAX_KEY_LEN + MAX_IV_LEN];
35d7791
@@ -230,15 +269,35 @@ emile_binbuf_decipher(Emile_Cipher_Algor
35d7791
    eina_binbuf_append_length(result, (unsigned char*) (over + 1), tmp_len);
35d7791
 
35d7791
    /* Openssl create the corresponding cipher */
35d7791
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   ctx = EVP_CIPHER_CTX_new();
35d7791
+   if (ctx == NULL)
35d7791
+     goto on_error;
35d7791
+   opened = 1;
35d7791
+
35d7791
+   if (!EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, ik, iv))
35d7791
+     goto on_error;
35d7791
+#else
35d7791
    EVP_CIPHER_CTX_init(&ctx;;
35d7791
    opened = 1;
35d7791
 
35d7791
    if (!EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, ik, iv))
35d7791
      goto on_error;
35d7791
+#endif
35d7791
 
35d7791
    memset(iv, 0, sizeof (iv));
35d7791
    memset(ik, 0, sizeof (ik));
35d7791
 
35d7791
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+   /* Openssl decrypt */
35d7791
+   if (!EVP_DecryptUpdate(ctx,
35d7791
+                          (void*) eina_binbuf_string_get(result), &tmp,
35d7791
+                          (void*) (over + 1), tmp_len))
35d7791
+     goto on_error;
35d7791
+
35d7791
+   /* Openssl close the cipher*/
35d7791
+   EVP_CIPHER_CTX_free(ctx);
35d7791
+#else
35d7791
    /* Openssl decrypt */
35d7791
    if (!EVP_DecryptUpdate(&ctx,
35d7791
                           (void*) eina_binbuf_string_get(result), &tmp,
35d7791
@@ -247,6 +306,7 @@ emile_binbuf_decipher(Emile_Cipher_Algor
35d7791
 
35d7791
    /* Openssl close the cipher*/
35d7791
    EVP_CIPHER_CTX_cleanup(&ctx;;
35d7791
+#endif
35d7791
 
35d7791
    /* Get the decrypted data size */
35d7791
    tmp = *(unsigned int*)(eina_binbuf_string_get(result));
35d7791
@@ -265,7 +325,11 @@ on_error:
35d7791
    memset(ik, 0, sizeof (ik));
35d7791
 
35d7791
    if (opened)
35d7791
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
35d7791
+     EVP_CIPHER_CTX_free(ctx);
35d7791
+#else
35d7791
      EVP_CIPHER_CTX_cleanup(&ctx;;
35d7791
+#endif
35d7791
 
35d7791
    eina_binbuf_free(result);
35d7791