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: 4 days 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)
        );
    }
}


For more information send a message to info at phpclasses dot org.