Исправить сломанную установку libsodium php Ubuntu Xenial
libsodium БЫЛО нормально, но теперь мне удалось его сломать, и я не могу найти, как его сломать.
Amazon AWS Ubuntu Xenial, libsodium18 установлен, php-odium от PPA Ondrej Sury установлен, но вместо работы я теперь получаю:
Неопределенная константа 'Sodium\CRYPTO_SECRETBOX_NONCEBYTES'
Раздражает то, что в Zesty все хорошо, но стабильного образа AWS Zesty по-прежнему нет. Я уверен, что я просто забыл простую вещь, но она просто перестала работать.
2 ответа
Нашел это.
Имена функций натрия в PHP изменились, поэтому вместо вызова \Sodium\crypto_secretbox_open() теперь нужно вызывать odium_crypto_secretbox_open ()
Я искренне надеюсь, что этот пост поможет кому-то избежать горя, с которым я столкнулся за последние 24 часа, задаваясь вопросом, что бы я *^&%'поднял - возможно, это единственное, что в Интернете действительно указывает на это изменение, которое находит Google...
Пересмотренные имена функций и константы перечислены в https://paragonie.com/book/pecl-libsodium/read/01-quick-start.md
Описание проекта объясняет причину этих изменений: https://github.com/jedisct1/libsodium-php
Существует также полифилл, который обеспечивает старый интерфейс: https://github.com/mollie/polyfill-libsodium
Тем не менее, новые API libsodium недоступны при использовании этого polyfill.
Я не могу поддерживать обе версии, извините. Хотелось бы, чтобы мы продолжали использовать оригинальную версию с пространством имен.