FreeBSD Bugzilla – Attachment 192996 Details for
Bug 227178
databases/mysql56-server: Fix build with OpenSSL 1.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
mysql-PR227178-A192059-my_aes_openssl.cc.patch
mysql-PR227178-A192059-my_aes_openssl.cc.patch (text/plain), 4.19 KB, created by
gessel
on 2018-05-02 13:14:52 UTC
(
hide
)
Description:
mysql-PR227178-A192059-my_aes_openssl.cc.patch
Filename:
MIME Type:
Creator:
gessel
Created:
2018-05-02 13:14:52 UTC
Size:
4.19 KB
patch
obsolete
>--- mysys_ssl/my_aes_openssl.cc.orig 2017-12-09 07:33:37 UTC >+++ mysys_ssl/my_aes_openssl.cc >@@ -108,33 +108,47 @@ int my_aes_encrypt(const unsigned char * > const unsigned char *key, uint32 key_length, > enum my_aes_opmode mode, const unsigned char *iv) > { >- EVP_CIPHER_CTX ctx; >+#if OPENSSL_VERSION_NUMBER < 0x10100000L >+ EVP_CIPHER_CTX stack_ctx; >+ EVP_CIPHER_CTX *ctx= &stack_ctx; >+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ >+ EVP_CIPHER_CTX *ctx= EVP_CIPHER_CTX_new(); >+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ > const EVP_CIPHER *cipher= aes_evp_type(mode); > int u_len, f_len; > /* The real key to be used for encryption */ > unsigned char rkey[MAX_AES_KEY_LENGTH / 8]; > my_aes_create_key(key, key_length, rkey, mode); > >- if (!cipher || (EVP_CIPHER_iv_length(cipher) > 0 && !iv)) >+ if (!ctx || !cipher || (EVP_CIPHER_iv_length(cipher) > 0 && !iv)) > return MY_AES_BAD_DATA; > >- if (!EVP_EncryptInit(&ctx, cipher, rkey, iv)) >+ if (!EVP_EncryptInit(ctx, cipher, rkey, iv)) > goto aes_error; /* Error */ >- if (!EVP_CIPHER_CTX_set_padding(&ctx, 1)) >+ if (!EVP_CIPHER_CTX_set_padding(ctx, 1)) > goto aes_error; /* Error */ >- if (!EVP_EncryptUpdate(&ctx, dest, &u_len, source, source_length)) >+ if (!EVP_EncryptUpdate(ctx, dest, &u_len, source, source_length)) > goto aes_error; /* Error */ > >- if (!EVP_EncryptFinal(&ctx, dest + u_len, &f_len)) >+ if (!EVP_EncryptFinal(ctx, dest + u_len, &f_len)) > goto aes_error; /* Error */ > >- EVP_CIPHER_CTX_cleanup(&ctx); >+#if OPENSSL_VERSION_NUMBER < 0x10100000L >+ EVP_CIPHER_CTX_cleanup(ctx); >+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ >+ EVP_CIPHER_CTX_free(ctx); >+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ > return u_len + f_len; > > aes_error: > /* need to explicitly clean up the error if we want to ignore it */ > ERR_clear_error(); >- EVP_CIPHER_CTX_cleanup(&ctx); >+#if OPENSSL_VERSION_NUMBER < 0x10100000L >+ EVP_CIPHER_CTX_cleanup(ctx); >+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ >+ EVP_CIPHER_CTX_free(ctx); >+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ >+ > return MY_AES_BAD_DATA; > } > >@@ -145,7 +159,12 @@ int my_aes_decrypt(const unsigned char * > enum my_aes_opmode mode, const unsigned char *iv) > { > >- EVP_CIPHER_CTX ctx; >+#if OPENSSL_VERSION_NUMBER < 0x10100000L >+ EVP_CIPHER_CTX stack_ctx; >+ EVP_CIPHER_CTX *ctx= &stack_ctx; >+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ >+ EVP_CIPHER_CTX *ctx= EVP_CIPHER_CTX_new(); >+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ > const EVP_CIPHER *cipher= aes_evp_type(mode); > int u_len, f_len; > >@@ -156,24 +175,30 @@ int my_aes_decrypt(const unsigned char * > if (!cipher || (EVP_CIPHER_iv_length(cipher) > 0 && !iv)) > return MY_AES_BAD_DATA; > >- EVP_CIPHER_CTX_init(&ctx); >- >- if (!EVP_DecryptInit(&ctx, aes_evp_type(mode), rkey, iv)) >+ if (!EVP_DecryptInit(ctx, aes_evp_type(mode), rkey, iv)) > goto aes_error; /* Error */ >- if (!EVP_CIPHER_CTX_set_padding(&ctx, 1)) >+ if (!EVP_CIPHER_CTX_set_padding(ctx, 1)) > goto aes_error; /* Error */ >- if (!EVP_DecryptUpdate(&ctx, dest, &u_len, source, source_length)) >+ if (!EVP_DecryptUpdate(ctx, dest, &u_len, source, source_length)) > goto aes_error; /* Error */ >- if (!EVP_DecryptFinal_ex(&ctx, dest + u_len, &f_len)) >+ if (!EVP_DecryptFinal_ex(ctx, dest + u_len, &f_len)) > goto aes_error; /* Error */ > >- EVP_CIPHER_CTX_cleanup(&ctx); >+#if OPENSSL_VERSION_NUMBER < 0x10100000L >+ EVP_CIPHER_CTX_cleanup(ctx); >+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ >+ EVP_CIPHER_CTX_free(ctx); >+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ > return u_len + f_len; > > aes_error: > /* need to explicitly clean up the error if we want to ignore it */ > ERR_clear_error(); >- EVP_CIPHER_CTX_cleanup(&ctx); >+#if OPENSSL_VERSION_NUMBER < 0x10100000L >+ EVP_CIPHER_CTX_cleanup(ctx); >+#else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ >+ EVP_CIPHER_CTX_free(ctx); >+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ > return MY_AES_BAD_DATA; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 227178
:
192059
|
192995
| 192996