예제 #1
0
 public function testCrossPlatformDecryption()
 {
     $key = '9u4O/OOB7wuX7CYriDmlABT6NJQVQGHuC5qPQ5EmWsU=';
     $iv = 'YB6jf1MP+n3OpOr+hiEsmQ==';
     $encrypted = 'IbU6hBo8JV+cEfzzHLZnnQ==';
     $decrypted = AES::decrypt($encrypted, $key, $iv);
     $expected = 'Hello World!';
     $this->assertEquals($expected, $decrypted, 'decryption works');
 }
예제 #2
0
 public function testSymmetricEncryption()
 {
     $keyPair1 = ECC::generateKeyPair();
     $keyPair2 = ECC::generateKeyPair();
     $symmetricKeyA = $keyPair1->calculateSymmetricKey($keyPair2->getPublicKey());
     $symmetricKeyB = $keyPair2->calculateSymmetricKey($keyPair1->getPublicKey());
     $this->assertEquals($symmetricKeyA, $symmetricKeyB);
     // if I wanna encrypt data only for myself to see
     $myKey = $keyPair1->calculateSymmetricKey();
     $iv = AES::generateInitializationVector();
     $original = 'Hello World!';
     $encrypted = AES::encrypt($original, $myKey, $iv);
     $decrypted = AES::decrypt($encrypted, $myKey, $iv);
     $this->assertEquals($original, $decrypted, 'encryption works');
 }