Эта функция:
Код: Выделить всё
sodium_crypto_box_seal('Hello World', $pemPublicKey);
Код: Выделить всё
Argument 2 must be CRYPTO_BOX_PUBLICKEYBYTES long.
Код: Выделить всё
$pemPublicKey = file_get_contents(PEM_FILES_PATH . '/public33.pem');
$pemPublicKey = str_replace('-----BEGIN PUBLIC KEY-----', '', $pemPublicKey);
$pemPublicKey = str_replace('-----END PUBLIC KEY-----', '', $pemPublicKey);
$pemPublicKey = trim($pemPublicKey);
$pemPublicKey = base64_decode($pemPublicKey);
$enc = sodium_crypto_box_seal('Hello World', $pemPublicKey);
Код: Выделить всё
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA5d3iW1eV66LJbBub+hrZinr2Uky6RfqYG3VNxQnCl4U=
-----END PUBLIC KEY-----
Файл первичного ключа и открытого ключа был создан следующим образом:
Код: Выделить всё
openssl genpkey -algorithm Ed25519 -out private33.bin
Код: Выделить всё
openssl pkey -in private33.pem -pubout -out public33.pem
Подробнее здесь: https://stackoverflow.com/questions/784 ... ot-working