PHP Classes

File: tests/Integration/DefuseTest.php

Recommend this page to a friend!
  Classes of Scott Arciszewski   Easy PHP ECC   tests/Integration/DefuseTest.php   Download  
File: tests/Integration/DefuseTest.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Easy PHP ECC
Encrypt, decrypt and sign messages with PHPECC
Author: By
Last change:
Date: 3 years ago
Size: 4,074 bytes
 

Contents

Class file image Download
<?php
declare(strict_types=1);
namespace
ParagonIE\EasyECC\Tests\Integration;

use
Defuse\Crypto\Exception\BadFormatException;
use
Defuse\Crypto\Exception\EnvironmentIsBrokenException;
use
Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException;
use
ParagonIE\EasyECC\Exception\ConfigException;
use
ParagonIE\EasyECC\EasyECC;
use
ParagonIE\EasyECC\Integration\Defuse;
use
PHPUnit\Framework\TestCase;

/**
 * Class DefuseTest
 * @package ParagonIE\EasyECC\Tests\Integration
 */
class DefuseTest extends TestCase
{
   
/** @var EasyECC $k256 */
   
protected $k256;

   
/** @var EasyECC $p256 */
   
protected $p256;

   
/** @var EasyECC $p384 */
   
protected $p384;

   
/** @var EasyECC $sodium */
   
protected $sodium;

   
/**
     * @throws ConfigException
     */
   
public function setUp(): void
   
{
       
$this->k256 = new EasyECC('K256');
       
$this->p256 = new EasyECC('P256');
       
$this->p384 = new EasyECC('P384');
       
$this->sodium = new EasyECC();
    }

   
/**
     * @throws BadFormatException
     * @throws EnvironmentIsBrokenException
     * @throws WrongKeyOrModifiedCiphertextException
     * @throws \SodiumException
     * @throws \TypeError
     */
   
public function testAsymmetricEncryptK256()
    {
       
$alice_sk = $this->k256->generatePrivateKey();
       
$alice_pk = $alice_sk->getPublicKey();
       
$bob_sk = $this->k256->generatePrivateKey();
       
$bob_pk = $bob_sk->getPublicKey();

       
$defuse = new Defuse($this->k256);

       
$message = 'This is a test message.';
       
$ciphertext = $defuse->asymmetricEncrypt($message, $alice_sk, $bob_pk);

       
$this->assertSame(
           
$message,
           
$defuse->asymmetricDecrypt($ciphertext, $bob_sk, $alice_pk)
        );
    }

   
/**
     * @throws BadFormatException
     * @throws EnvironmentIsBrokenException
     * @throws WrongKeyOrModifiedCiphertextException
     * @throws \SodiumException
     * @throws \TypeError
     */
   
public function testAsymmetricEncryptP256()
    {
       
$alice_sk = $this->p256->generatePrivateKey();
       
$alice_pk = $alice_sk->getPublicKey();
       
$bob_sk = $this->p256->generatePrivateKey();
       
$bob_pk = $bob_sk->getPublicKey();

       
$defuse = new Defuse($this->p256);

       
$message = 'This is a test message.';
       
$ciphertext = $defuse->asymmetricEncrypt($message, $alice_sk, $bob_pk);

       
$this->assertSame(
           
$message,
           
$defuse->asymmetricDecrypt($ciphertext, $bob_sk, $alice_pk)
        );
    }

   
/**
     * @throws BadFormatException
     * @throws EnvironmentIsBrokenException
     * @throws WrongKeyOrModifiedCiphertextException
     * @throws \SodiumException
     * @throws \TypeError
     */
   
public function testAsymmetricEncryptP384()
    {
       
$alice_sk = $this->p384->generatePrivateKey();
       
$alice_pk = $alice_sk->getPublicKey();
       
$bob_sk = $this->p384->generatePrivateKey();
       
$bob_pk = $bob_sk->getPublicKey();

       
$defuse = new Defuse($this->p384);

       
$message = 'This is a test message.';
       
$ciphertext = $defuse->asymmetricEncrypt($message, $alice_sk, $bob_pk);

       
$this->assertSame(
           
$message,
           
$defuse->asymmetricDecrypt($ciphertext, $bob_sk, $alice_pk)
        );
    }

   
/**
     * @throws BadFormatException
     * @throws EnvironmentIsBrokenException
     * @throws WrongKeyOrModifiedCiphertextException
     * @throws \SodiumException
     * @throws \TypeError
     */
   
public function testAsymmetricEncryptSodium()
    {
       
$alice_sk = $this->sodium->generatePrivateKey();
       
$alice_pk = $alice_sk->getPublicKey();
       
$bob_sk = $this->sodium->generatePrivateKey();
       
$bob_pk = $bob_sk->getPublicKey();

       
$defuse = new Defuse($this->sodium);

       
$message = 'This is a test message.';
       
$ciphertext = $defuse->asymmetricEncrypt($message, $alice_sk, $bob_pk);

       
$this->assertSame(
           
$message,
           
$defuse->asymmetricDecrypt($ciphertext, $bob_sk, $alice_pk)
        );
    }
}