You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.7 KiB

  1. From 008e299aaf32af0b93eede649c6942af93b1c11e Mon Sep 17 00:00:00 2001
  2. From: Rosen Penev <rosenp@gmail.com>
  3. Date: Sat, 15 Jun 2019 17:49:25 -0700
  4. Subject: [PATCH 4/7] Replace EVP_CIPHER_CTX_cleanup with EVP_CIPHER_CTX_reset
  5. Deprecated in OpenSSL 1.1
  6. ---
  7. src/_cffi_src/openssl/evp.py | 6 ++++++
  8. src/cryptography/hazmat/backends/openssl/ciphers.py | 2 +-
  9. 2 files changed, 7 insertions(+), 1 deletion(-)
  10. --- a/src/_cffi_src/openssl/evp.py
  11. +++ b/src/_cffi_src/openssl/evp.py
  12. @@ -48,6 +48,7 @@ int EVP_CipherUpdate(EVP_CIPHER_CTX *, u
  13. const unsigned char *, int);
  14. int EVP_CipherFinal_ex(EVP_CIPHER_CTX *, unsigned char *, int *);
  15. int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *);
  16. +int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *);
  17. EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
  18. void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *);
  19. int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *, int);
  20. @@ -269,4 +270,9 @@ static const long Cryptography_HAS_EVP_D
  21. #ifndef EVP_PKEY_POLY1305
  22. #define EVP_PKEY_POLY1305 NID_poly1305
  23. #endif
  24. +
  25. +#if (OPENSSL_API_COMPAT >= 0x10100000L) && !CRYPTOGRAPHY_IS_LIBRESSL
  26. +#define EVP_CIPHER_CTX_cleanup EVP_CIPHER_CTX_reset
  27. +#define OpenSSL_add_all_algorithms() do {} while(0)
  28. +#endif
  29. """
  30. --- a/src/cryptography/hazmat/backends/openssl/ciphers.py
  31. +++ b/src/cryptography/hazmat/backends/openssl/ciphers.py
  32. @@ -199,7 +199,7 @@ class _CipherContext(object):
  33. self._backend.openssl_assert(res != 0)
  34. self._tag = self._backend._ffi.buffer(tag_buf)[:]
  35. - res = self._backend._lib.EVP_CIPHER_CTX_cleanup(self._ctx)
  36. + res = self._backend._lib.EVP_CIPHER_CTX_reset(self._ctx)
  37. self._backend.openssl_assert(res == 1)
  38. return self._backend._ffi.buffer(buf)[: outlen[0]]