schmittjoh / JMSPaymentCoreBundle

A unified API for processing payments with Symfony
http://jmspaymentcorebundle.readthedocs.io/
Apache License 2.0
194 stars 107 forks source link

Remove dependency on mcrypt #196

Closed ruudk closed 7 years ago

ruudk commented 7 years ago

It's been deprecated in PHP 7.1

http://php.net/manual/en/migration71.deprecated.php

ruudk commented 7 years ago
Function mcrypt_list_algorithms() is deprecated in /home/app/releases/20161205121224/vendor/jms/payment-core-bundle/JMS/Payment/CoreBundle/Cryptography/MCryptEncryptionService.php on line 49
Deprecated: Function mcrypt_list_algorithms() is deprecated in /home/app/releases/20161205121224/vendor/jms/payment-core-bundle/JMS/Payment/CoreBundle/Cryptography/MCryptEncryptionService.php on line 49
PHP Deprecated:  Function mcrypt_list_modes() is deprecated in /home/app/releases/20161205121224/vendor/jms/payment-core-bundle/JMS/Payment/CoreBundle/Cryptography/MCryptEncryptionService.php on line 53
Deprecated: Function mcrypt_list_modes() is deprecated in /home/app/releases/20161205121224/vendor/jms/payment-core-bundle/JMS/Payment/CoreBundle/Cryptography/MCryptEncryptionService.php on line 53
PHP Deprecated:  Function mcrypt_get_key_size() is deprecated in /home/app/releases/20161205121224/vendor/jms/payment-core-bundle/JMS/Payment/CoreBundle/Cryptography/MCryptEncryptionService.php on line 65
Deprecated: Function mcrypt_get_key_size() is deprecated in /home/app/releases/20161205121224/vendor/jms/payment-core-bundle/JMS/Payment/CoreBundle/Cryptography/MCryptEncryptionService.php on line 65
psrpinto commented 7 years ago

Thanks for reporting this. I had no idea mcrypt was in such bad shape.

There seem to be two options:

  1. Using OpenSSL, which requires the OpenSSL extension
  2. Use defuse/php-encryption which has no dependencies but requires PHP 5.4

I'm more in favor of defuse/php-encryption since it has no dependencies, even though it will require us to drop PHP 5.3 support (it's about time anyway).

psrpinto commented 7 years ago

Usage of mcrypt within this bundle has now been deprecated in favour of defuse/php-encryption, which is now the default encryption provider for new installations. Existing installations keep using mcrypt in order to maintain BC. See the Change log for 1.3.0 for more information.

Thanks for reporting this issue.