f8e0e997fc
This commit adds an `example/README.md` file with a little bit of guidance for running the examples themselves. This is helpful because the examples all rely on the presence of a `phpseclib` installation available to the PHP interpreter, and while there is a `composer.json` file to this effect, none of the examples included the Composer `autoload.php` file. This commit makes no modifications to the example code itself, but does `include_once()` the Composer autoload script so that `phpseclib` loads and avoids causing a fatal error when a new user attempts to run the examples to learn how to use the library. This commit also updates the Travis `before_script` build script, dropping the `--dev` argument to the `composer install` command. Current versions of Composer emit a deprecation notice when `--dev` is passed.
29 lines
949 B
PHP
29 lines
949 B
PHP
<?php
|
|
|
|
// USAGE: php examples/deASCIIdeCrypt.php secretkey.asc password message.asc
|
|
// This will fail if the algo on key or message is not 3DES or AES
|
|
|
|
@include_once dirname(__FILE__).'/../vendor/autoload.php';
|
|
require_once dirname(__FILE__).'/../lib/openpgp.php';
|
|
require_once dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php';
|
|
require_once dirname(__FILE__).'/../lib/openpgp_crypt_symmetric.php';
|
|
|
|
$keyASCII = file_get_contents($argv[1]);
|
|
$msgASCII = file_get_contents($argv[3]);
|
|
|
|
$keyEncrypted = OpenPGP_Message::parse(OpenPGP::unarmor($keyASCII, 'PGP PRIVATE KEY BLOCK'));
|
|
|
|
// Try each secret key packet
|
|
foreach($keyEncrypted as $p) {
|
|
if(!($p instanceof OpenPGP_SecretKeyPacket)) continue;
|
|
|
|
$key = OpenPGP_Crypt_Symmetric::decryptSecretKey($argv[2], $p);
|
|
|
|
$msg = OpenPGP_Message::parse(OpenPGP::unarmor($msgASCII, 'PGP MESSAGE'));
|
|
|
|
$decryptor = new OpenPGP_Crypt_RSA($key);
|
|
$decrypted = $decryptor->decrypt($msg);
|
|
|
|
var_dump($decrypted);
|
|
}
|