OpenSSL Ed25519 с натрием php не работаетPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 OpenSSL Ed25519 с натрием php не работает

Сообщение Anonymous »

Я пытаюсь зашифровать сообщение с помощью PHP 7.4 Sodium.
Эта функция:

Код: Выделить всё

sodium_crypto_box_seal('Hello World', $pemPublicKey);
Возвращает ошибку:

Код: Выделить всё

Argument 2 must be CRYPTO_BOX_PUBLICKEYBYTES long.
$pemPublicKey хранится в файле public33.pem, и я получаю его следующим образом:

Код: Выделить всё

 $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);
Содержимое файла public33.pem:

Код: Выделить всё

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA5d3iW1eV66LJbBub+hrZinr2Uky6RfqYG3VNxQnCl4U=
-----END PUBLIC KEY-----
Я проверил, содержимое файла читается правильно.
Файл первичного ключа и открытого ключа был создан следующим образом:

Подробнее здесь: https://stackoverflow.com/questions/784 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»