Jak používat GnuPG a Crypt_GPG

hlasů
2

Snažím se používat GnuPG a Crypt_GPG k zašifrování dat připraveny k odeslání přes e-mail klienta serveru, ale já jsem problémy s jejím zřízení.

  1. Nainstaloval jsem GnuPG na serveru, a to funguje v pohodě, která se nachází v /home/myserver/.gnupg
  2. Nainstaloval jsem Crypt_GPG do /home/myserver/php/Crypta upravovat různé soubory mají absolutní odkaz odkazy na sebe. Pracují v pořádku.
  3. Použil jsem svou serverovou CPanel vytvořit zkušební veřejný / tajný klíč. Klíč generován v pořádku.

Tady je můj testovací kód (s režim ladění ponechány na)

<?php
require_once '/home/myserver/php/Crypt/GPG.php';

$gpg = new Crypt_GPG(array('homedir' => '/home/myserver/.gnupg', 'debug' => true));
echo My public key is: , $gpg->exportPublicKey('info@test.co.uk'), <br>;
echo My key fingerprint is: , $gpg->getFingerprint('info@test.co.uk', Crypt_GPG::FORMAT_CANONICAL), <br>;

$data = 'Hello, World!';
$gpg->addSignKey('info@test.co.uk');
$signedData = $gpg->sign($data, Crypt_GPG::SIGN_MODE_CLEAR);
echo <br><br>Clearsigned message is: , $signedData, \n;

?>

První část kódu funguje dobře - veřejný klíč je načtena, zobrazí a otisků prstů ukazuje, že příliš.

Problém je s druhým blokem kódu - ve skutečnosti se snaží šifrování něco. Mám tyto chyby v ladění výkonu. Nebudu psát na plný výkon (jeho velký), ale doufám, že to jsou hlavní body:

Crypt_GPG DEBUG: STATUS: GET_HIDDEN passphrase.enter
Crypt_GPG DEBUG: STATUS: GOT_IT
Crypt_GPG DEBUG: STATUS: MISSING_PASSPHRASE
Crypt_GPG DEBUG: STATUS: BAD_PASSPHRASE EEE2DCBB741D9730
Crypt_GPG DEBUG: STATUS: USERID_HINT EEE2DCBB741D9730 Test Key (Test Key)
Crypt_GPG DEBUG: STATUS: NEED_PASSPHRASE EEE2DCBB741D9730 EEE2DCBB741D9730 17 0
Crypt_GPG DEBUG: STATUS: GET_HIDDEN passphrase.enter
Crypt_GPG DEBUG: => closing GPG input pipe
Crypt_GPG DEBUG: selecting streams
Crypt_GPG DEBUG: => got 1
Crypt_GPG DEBUG: GPG is ready for command data
Crypt_GPG DEBUG: => about to write 1 bytes to GPG command
Crypt_GPG DEBUG: => wrote 1
Crypt_GPG DEBUG: => closing GPG input pipe
Crypt_GPG DEBUG: selecting streams
Crypt_GPG DEBUG: => got 1
Crypt_GPG DEBUG: GPG status stream ready for reading
Crypt_GPG DEBUG: => about to read 8192 bytes from GPG status
Crypt_GPG DEBUG: => read 44 bytes
Crypt_GPG DEBUG: STATUS: GOT_IT
Crypt_GPG DEBUG: STATUS: MISSING_PASSPHRASE
Crypt_GPG DEBUG: => closing GPG input pipe
Crypt_GPG DEBUG: selecting streams
Crypt_GPG DEBUG: => got 1
Crypt_GPG DEBUG: GPG status stream ready for reading
Crypt_GPG DEBUG: => about to read 8192 bytes from GPG status
Crypt_GPG DEBUG: => read 122 bytes
Crypt_GPG DEBUG: STATUS: BAD_PASSPHRASE EEE2DCBB741D9730

a později:

Crypt_GPG DEBUG: END PROCESSING
Crypt_GPG DEBUG: CLOSING SUBPROCESS
Crypt_GPG DEBUG: => subprocess returned an unexpected exit code: 2

Fatal error: Uncaught <table border=1 cellspacing=0> <tr><td colspan=3 bgcolor=#ff9999> <b>Crypt_GPG_BadPassphraseException</b>: Cannot sign data. Incorrect passphrase provided. in <b>/home/myserver/php/Crypt/GPG.php</b> on line <b>1054</b></td></tr> <tr><td colspan=3 bgcolor=#aaaaaa align=center><b>Exception trace</b></td></tr> <tr><td align=center bgcolor=#cccccc width=20><b>#</b></td><td align=center bgcolor=#cccccc><b>Function</b></td><td align=center bgcolor=#cccccc><b>Location</b></td></tr> <tr><td align=center>0</td><td>Crypt_GPG->_sign('Hello, World!', false, null, 2, true)</td><td>/home/myserver/php/Crypt/GPG.php:1054</td></tr> <tr><td align=center>1</td><td>Crypt_GPG->sign('Hello, World!', 2)</td><td>/home/myserver/public_html/email.php:7</td></tr> <tr><td align=center>2</td><td>{main}</td><td>&nbsp;</td></tr> </table> thrown in /home/myserver/php/Crypt/GPG.php on line 1837

Pro mě to vypadá Crypt_GPG má problémy s výběrem, co potřebuje od klíče GnuPG? Zdá se, že správně najít klíč, ale to padá s přístupovým heslem. Je to chyba se mé chápání a kódu, nebo je to proto, že CPanel a Apache jsou různí uživatelé, nebo tak něco?

Potřebují trochu vedení, díky;)

Položena 09/09/2009 v 11:05
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Tyto příklady ukazují, jak zadat přístupové heslo:

$gpg->addSignKey('test@example.com', 'test');

Zkontrolujte dokumentaci pro další příklady.

Odpovězeno 09/09/2009 v 11:32
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more