armen / whatsapp-psr7-streams
Psr-7 Decorators for WhatsApp style media decrypt-encrypt
v1.0.0
2025-04-22 23:10 UTC
Requires
- php: >=8.0
- guzzlehttp/psr7: ^2.7
Requires (Dev)
- guzzlehttp/guzzle: ^7.0
- nyholm/psr7: ^1.8
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.0
- squizlabs/php_codesniffer: ^3.12
README
Это библиотека-декоратор для PSR-7 потоков, обеспечивающая шифрование и дешифрование медиафайлов по алгоритму, совместимому с WhatsApp.
🛠 Install
composer require armen/whatsapp-psr7-streams
Usage
use Armen\WhatsappPsr7Streams\Stream\Encrypt; use Armen\WhatsappPsr7Streams\Stream\Decrypt; use Armen\WhatsappPsr7Streams\MediaType; use GuzzleHttp\Psr7\Utils; use Nyholm\Psr7\Factory\Psr17Factory; $mediaKey = random_bytes(32); // $originalStream = Utils::streamFor(file_get_contents('samples/IMAGE.original')); //or $psr17Factory = new Psr17Factory(); $originalStream = $psr17Factory->createStream(file_get_contents('samples/IMAGE.original')); //Шифрование $enc = new Encrypt($input, $mediaKey, MediaType::IMAGE->value); //Дешифрование $dec = new Decrypt($enc, $mediaKey, MediaType::IMAGE->value); file_put_contents('samples/results/IMAGE.enc', $enc->getContents()); file_put_contents('samples/results/IMAGE.original', $dec->getContents());
TODO:
[ ] Покрытие тестами