Как исправить ошибки «Не удалось найти homedir» в библиотеке Crypt_GPG - PullRequest
0 голосов
/ 24 октября 2019

Я хочу зашифровать полезную нагрузку, используя библиотеку pear / crypt_gpg, и когда я отправляю запрос с этой полезной нагрузкой, используя мою встроенную функцию и другую библиотеку, которая использует библиотеку pear, я получаю эти ошибки: «Не удалось найти homedir. Пожалуйста, укажитеhomedir для использования с опцией 'homedir' при создании экземпляра объекта Crypt_GPG. "Что мне нужно сделать, чтобы исправить эти ошибки.

Я очень плохо знаком с этой библиотекой gpg encryption / pear и не написал другую библиотеку, которую использую сам.

вот код из библиотеки, реализующей crypt gpg.

<?php
namespace Zaghadon\CoralpayPGPLaravel;
/**
 * Created by osemeodigie on 14/03/2019
 * Objective: building to scale
 *
 * Version 1.1.0
*/

//use Crypt_GPG;
require '../vendor/autoload.php';

use Crypt_GPG;

class CoralPayPGPEncryption extends Crypt_GPG
{

    const VERSION = array(0, 3, 0);

    /**
     * Used to encrypt the response message from Cgate.
     *
     * @return $output - of the encryption
     */
    public function encryptRequest($plainRequest, $keyId) {
        // add the valid public key
        $this->addEncryptKey($keyId);
        $encryptedRequest = $this->encrypt($plainRequest, false); // encrypt the message here

        // remove the message block labels (strip armored header and footer labels)
        // $unArmoredEncryptedMessage = $this->strip_armor($encryptedRequest, 'PGP MESSAGE');
        // convert the binary message to hex
        $encryptedBinMessageToHex = bin2hex($encryptedRequest);
        return $encryptedBinMessageToHex; // return the hex of the encrypted message
    }

, а вот мой метод вызова библиотеки

use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Exception\RequestException;
use Zaghadon\CoralpayPGPLaravel\CoralPayPGPEncryption;

class POSController extends Controller
{
    private $gpg;

    public function requestEncrypt($data)
    {
        $options_array = array();
        $this->gpg = new CoralPayPGPEncryption($options_array);

        $keyId ='UHSUHDFGASHDHBASDJGHAHSGDHASXXXXXXXXXXXHHSDHFGSJJDFSFHHDFHBV
                 JDFSJKHFSHGKJDFHSGKJGHKDFJKGHSDJFG
                 DFSGHHHHHJKKHJDSF'
        $encryptedData = $this->gpg->encryptRequest($data, $keyId);

        return $encryptedData;
    }

и мое использование метода requestEncrpt ()

$data = json_encode($array);

            $payload = POSController::requestEncrypt($data);

            dd($payload);

Я ожидаю, что вывод полезной нагрузки dd () будет шестнадцатеричным значением gpg encyrption моего объекта данных json, но он показывает: «Не удалось найти homedir. Укажите homedir для использования сопция 'homedir' при создании экземпляра объекта Crypt_GPG. "ошибки. Пожалуйста, помогите мне, я делаю что-то неправильно ??? как я могу решить эту проблему ???

...