Rename symmetric encrypt/decrypt class
I'm going to make this one more generic than one library, and have it support ciphers based on what libraries are available, so this more generic name is appropriate.
This commit is contained in:
parent
7ae4d539f2
commit
82ed7d85bd
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
require dirname(__FILE__).'/../lib/openpgp.php';
|
require dirname(__FILE__).'/../lib/openpgp.php';
|
||||||
require dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php';
|
require dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php';
|
||||||
require dirname(__FILE__).'/../lib/openpgp_crypt_aes_tripledes.php';
|
require dirname(__FILE__).'/../lib/openpgp_crypt_symmetric.php';
|
||||||
|
|
||||||
$keyASCII = file_get_contents($argv[1]);
|
$keyASCII = file_get_contents($argv[1]);
|
||||||
$msgASCII = file_get_contents($argv[3]);
|
$msgASCII = file_get_contents($argv[3]);
|
||||||
@ -16,7 +16,7 @@ $keyEncrypted = OpenPGP_Message::parse(OpenPGP::unarmor($keyASCII, 'PGP PRIVATE
|
|||||||
foreach($keyEncrypted as $p) {
|
foreach($keyEncrypted as $p) {
|
||||||
if(!($p instanceof OpenPGP_SecretKeyPacket)) continue;
|
if(!($p instanceof OpenPGP_SecretKeyPacket)) continue;
|
||||||
|
|
||||||
$key = OpenPGP_Crypt_AES_TripleDES::decryptSecretKey($argv[2], $p);
|
$key = OpenPGP_Crypt_Symmetric::decryptSecretKey($argv[2], $p);
|
||||||
|
|
||||||
$msg = OpenPGP_Message::parse(OpenPGP::unarmor($msgASCII, 'PGP MESSAGE'));
|
$msg = OpenPGP_Message::parse(OpenPGP::unarmor($msgASCII, 'PGP MESSAGE'));
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
require dirname(__FILE__).'/../lib/openpgp.php';
|
require dirname(__FILE__).'/../lib/openpgp.php';
|
||||||
require dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php';
|
require dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php';
|
||||||
require dirname(__FILE__).'/../lib/openpgp_crypt_aes_tripledes.php';
|
require dirname(__FILE__).'/../lib/openpgp_crypt_symmetric.php';
|
||||||
|
|
||||||
$key = OpenPGP_Message::parse(file_get_contents(dirname(__FILE__) . '/../tests/data/helloKey.gpg'));
|
$key = OpenPGP_Message::parse(file_get_contents(dirname(__FILE__) . '/../tests/data/helloKey.gpg'));
|
||||||
$data = new OpenPGP_LiteralDataPacket('This is text.', array('format' => 'u', 'filename' => 'stuff.txt'));
|
$data = new OpenPGP_LiteralDataPacket('This is text.', array('format' => 'u', 'filename' => 'stuff.txt'));
|
||||||
$encrypted = OpenPGP_Crypt_AES_TripleDES::encrypt($key, new OpenPGP_Message(array($data)));
|
$encrypted = OpenPGP_Crypt_Symmetric::encrypt($key, new OpenPGP_Message(array($data)));
|
||||||
|
|
||||||
echo $encrypted->to_bytes();exit;
|
echo $encrypted->to_bytes();exit;
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
require 'Crypt/RSA.php';
|
require 'Crypt/RSA.php';
|
||||||
|
|
||||||
require_once dirname(__FILE__).'/openpgp.php';
|
require_once dirname(__FILE__).'/openpgp.php';
|
||||||
@include_once dirname(__FILE__).'/openpgp_cryph_aes_tripledes.php'; /* For encrypt/decrypt */
|
@include_once dirname(__FILE__).'/openpgp_crypt_symmetric.php'; /* For encrypt/decrypt */
|
||||||
|
|
||||||
class OpenPGP_Crypt_RSA {
|
class OpenPGP_Crypt_RSA {
|
||||||
protected $key, $message;
|
protected $key, $message;
|
||||||
@ -194,7 +194,7 @@ class OpenPGP_Crypt_RSA {
|
|||||||
|
|
||||||
if(!$sk) continue;
|
if(!$sk) continue;
|
||||||
|
|
||||||
$r = OpenPGP_Crypt_AES_TripleDES::decryptPacket(OpenPGP_Crypt_AES_TripleDES::getEncryptedData($message), $sk[0], $sk[1]);
|
$r = OpenPGP_Crypt_Symmetric::decryptPacket(OpenPGP_Crypt_Symmetric::getEncryptedData($message), $sk[0], $sk[1]);
|
||||||
if($r) return $r;
|
if($r) return $r;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ require_once 'Crypt/AES.php';
|
|||||||
require_once 'Crypt/TripleDES.php';
|
require_once 'Crypt/TripleDES.php';
|
||||||
require_once 'Crypt/Random.php';
|
require_once 'Crypt/Random.php';
|
||||||
|
|
||||||
class OpenPGP_Crypt_AES_TripleDES {
|
class OpenPGP_Crypt_Symmetric {
|
||||||
public static function encrypt($passphrases_and_keys, $message, $symmetric_algorithm=9) {
|
public static function encrypt($passphrases_and_keys, $message, $symmetric_algorithm=9) {
|
||||||
list($cipher, $key_bytes, $key_block_bytes) = self::getCipher($symmetric_algorithm);
|
list($cipher, $key_bytes, $key_block_bytes) = self::getCipher($symmetric_algorithm);
|
||||||
if(!$cipher) throw new Exception("Only AES/3DES are supported.");
|
if(!$cipher) throw new Exception("Only AES/3DES are supported.");
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
require_once dirname(__FILE__).'/../lib/openpgp.php';
|
require_once dirname(__FILE__).'/../lib/openpgp.php';
|
||||||
require_once dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php';
|
require_once dirname(__FILE__).'/../lib/openpgp_crypt_rsa.php';
|
||||||
require_once dirname(__FILE__).'/../lib/openpgp_crypt_aes_tripledes.php';
|
require_once dirname(__FILE__).'/../lib/openpgp_crypt_symmetric.php';
|
||||||
|
|
||||||
class MessageVerification extends PHPUnit_Framework_TestCase {
|
class MessageVerification extends PHPUnit_Framework_TestCase {
|
||||||
public function oneMessageRSA($pkey, $path) {
|
public function oneMessageRSA($pkey, $path) {
|
||||||
@ -67,7 +67,7 @@ class KeyVerification extends PHPUnit_Framework_TestCase {
|
|||||||
class Decryption extends PHPUnit_Framework_TestCase {
|
class Decryption extends PHPUnit_Framework_TestCase {
|
||||||
public function oneSymmetric($pass, $cnt, $path) {
|
public function oneSymmetric($pass, $cnt, $path) {
|
||||||
$m = OpenPGP_Message::parse(file_get_contents(dirname(__FILE__) . '/data/' . $path));
|
$m = OpenPGP_Message::parse(file_get_contents(dirname(__FILE__) . '/data/' . $path));
|
||||||
$m2 = OpenPGP_Crypt_AES_TripleDES::decryptSymmetric($pass, $m);
|
$m2 = OpenPGP_Crypt_Symmetric::decryptSymmetric($pass, $m);
|
||||||
while($m2[0] instanceof OpenPGP_CompressedDataPacket) $m2 = $m2[0]->data;
|
while($m2[0] instanceof OpenPGP_CompressedDataPacket) $m2 = $m2[0]->data;
|
||||||
foreach($m2 as $p) {
|
foreach($m2 as $p) {
|
||||||
if($p instanceof OpenPGP_LiteralDataPacket) {
|
if($p instanceof OpenPGP_LiteralDataPacket) {
|
||||||
@ -107,7 +107,7 @@ class Decryption extends PHPUnit_Framework_TestCase {
|
|||||||
|
|
||||||
public function testDecryptSecretKey() {
|
public function testDecryptSecretKey() {
|
||||||
$key = OpenPGP_Message::parse(file_get_contents(dirname(__FILE__) . '/data/encryptedSecretKey.gpg'));
|
$key = OpenPGP_Message::parse(file_get_contents(dirname(__FILE__) . '/data/encryptedSecretKey.gpg'));
|
||||||
$skey = OpenPGP_Crypt_AES_TripleDES::decryptSecretKey("hello", $key[0]);
|
$skey = OpenPGP_Crypt_Symmetric::decryptSecretKey("hello", $key[0]);
|
||||||
$this->assertSame(!!$skey, true);
|
$this->assertSame(!!$skey, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -115,15 +115,15 @@ class Decryption extends PHPUnit_Framework_TestCase {
|
|||||||
class Encryption extends PHPUnit_Framework_TestCase {
|
class Encryption extends PHPUnit_Framework_TestCase {
|
||||||
public function testEncryptSymmetric() {
|
public function testEncryptSymmetric() {
|
||||||
$data = new OpenPGP_LiteralDataPacket('This is text.', array('format' => 'u', 'filename' => 'stuff.txt'));
|
$data = new OpenPGP_LiteralDataPacket('This is text.', array('format' => 'u', 'filename' => 'stuff.txt'));
|
||||||
$encrypted = OpenPGP_Crypt_AES_TripleDES::encrypt('secret', new OpenPGP_Message(array($data)));
|
$encrypted = OpenPGP_Crypt_Symmetric::encrypt('secret', new OpenPGP_Message(array($data)));
|
||||||
$decrypted = OpenPGP_Crypt_AES_TripleDES::decryptSymmetric('secret', $encrypted);
|
$decrypted = OpenPGP_Crypt_Symmetric::decryptSymmetric('secret', $encrypted);
|
||||||
$this->assertEquals($decrypted[0]->data, 'This is text.');
|
$this->assertEquals($decrypted[0]->data, 'This is text.');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testEncryptAsymmetric() {
|
public function testEncryptAsymmetric() {
|
||||||
$key = OpenPGP_Message::parse(file_get_contents(dirname(__FILE__) . '/data/helloKey.gpg'));
|
$key = OpenPGP_Message::parse(file_get_contents(dirname(__FILE__) . '/data/helloKey.gpg'));
|
||||||
$data = new OpenPGP_LiteralDataPacket('This is text.', array('format' => 'u', 'filename' => 'stuff.txt'));
|
$data = new OpenPGP_LiteralDataPacket('This is text.', array('format' => 'u', 'filename' => 'stuff.txt'));
|
||||||
$encrypted = OpenPGP_Crypt_AES_TripleDES::encrypt($key, new OpenPGP_Message(array($data)));
|
$encrypted = OpenPGP_Crypt_Symmetric::encrypt($key, new OpenPGP_Message(array($data)));
|
||||||
$decryptor = new OpenPGP_Crypt_RSA($key);
|
$decryptor = new OpenPGP_Crypt_RSA($key);
|
||||||
$decrypted = $decryptor->decrypt($encrypted);
|
$decrypted = $decryptor->decrypt($encrypted);
|
||||||
$this->assertEquals($decrypted[0]->data, 'This is text.');
|
$this->assertEquals($decrypted[0]->data, 'This is text.');
|
||||||
|
Loading…
Reference in New Issue
Block a user