BASE . LOG, 'log_file_id' => $LOG_FILE_ID, 'log_per_date' => true, ]); // define a list of from to color sets for conversion test $PAGE_NAME = 'TEST CLASS: ENCRYPTION'; print ""; print "" . $PAGE_NAME . ""; print ""; print '
Class Test Master
'; print '

' . $PAGE_NAME . '

'; print "

Symmetric Encryption

"; $key = CreateKey::generateRandomKey(); print "Secret Key: " . $key . "
"; $string = "I a some deep secret"; // $crypt = new SymmetricEncryption($key); $encrypted = $crypt->encrypt($string); $decrypted = $crypt->decrypt($encrypted); print "[C] Encrypted: " . $encrypted . "
"; print "[C] Decrytped: " . $decrypted . "
"; $encrypted = SymmetricEncryption::getInstance($key)->encrypt($string); $decrypted = SymmetricEncryption::getInstance($key)->decrypt($encrypted); print "[S] Original: " . $string . "
"; print "[S] Encrypted: " . $encrypted . "
"; print "[S] Decrytped: " . $decrypted . "
"; $encrypted = SymmetricEncryption::encryptKey($string, $key); $decrypted = SymmetricEncryption::decryptKey($encrypted, $key); print "[SS] Encrypted: " . $encrypted . "
"; print "[SS] Decrytped: " . $decrypted . "
"; print "
INIT KEY MISSING
"; try { $crypt = new SymmetricEncryption(); $encrypted = $crypt->decrypt($string); } catch (Exception $e) { print("Error: " . $e->getMessage() . "
"); } print "
WRONG CIPHERTEXT
"; try { $decrypted = SymmetricEncryption::decryptKey('flupper', $key); } catch (Exception $e) { print "Error: " . $e->getMessage() . "
"; } print "
SHORT and WRONG KEY
"; $key = 'wrong_key'; try { $encrypted = SymmetricEncryption::encryptKey($string, $key); } catch (Exception $e) { print "Error: " . $e->getMessage() . "
"; } print "
INVALID HEX KEY
"; $key = '1cabd5cba9e042f12522f4ff2de5c31d233b'; try { $encrypted = SymmetricEncryption::encryptKey($string, $key); } catch (Exception $e) { print "Error: " . $e->getMessage() . "
"; } print "
WRONG KEY TO DECRYPT
"; $key = CreateKey::generateRandomKey(); $string = "I a some deep secret"; $encrypted = SymmetricEncryption::encryptKey($string, $key); $key = 'wrong_key'; try { $decrypted = SymmetricEncryption::decryptKey($encrypted, $key); } catch (Exception $e) { print "Error: " . $e->getMessage() . "
"; } // echo "
"; // $key = CreateKey::generateRandomKey(); // $se = new SymmetricEncryption($key); // $string = "I a some deep secret"; // $encrypted = $se->encrypt($string); // $decrypted = $se->decrypt($encrypted); echo "
"; print "

Asymmetric Encryption

"; $key_pair = CreateKey::createKeyPair(); $public_key = CreateKey::getPublicKey($key_pair); $string = "I am some asymmetric secret"; print "Message: " . $string . "
"; $encrypted = sodium_crypto_box_seal($string, CreateKey::hex2bin($public_key)); $message = sodium_bin2base64($encrypted, SODIUM_BASE64_VARIANT_ORIGINAL); print "Encrypted PL: " . $message . "
"; $result = sodium_base642bin($message, SODIUM_BASE64_VARIANT_ORIGINAL); $decrypted = sodium_crypto_box_seal_open($result, CreateKey::hex2bin($key_pair)); print "Decrypted PL: " . $decrypted . "
"; $encrypted = AsymmetricAnonymousEncryption::encryptKey($string, $public_key); print "Encrypted ST: " . $encrypted . "
"; $decrypted = AsymmetricAnonymousEncryption::decryptKey($encrypted, $key_pair); print "Decrypted ST: " . $decrypted . "
"; $aa_crypt = new AsymmetricAnonymousEncryption($key_pair, $public_key); $encrypted = $aa_crypt->encrypt($string); print "Encrypted: " . $encrypted . "
"; $decrypted = $aa_crypt->decrypt($encrypted); print "Decrypted: " . $decrypted . "
"; print "Base64 encode: " . base64_encode('Some text here') . "
"; /// this has to fail $crypt = new AsymmetricAnonymousEncryption(); $crypt->setPublicKey(CreateKey::getPublicKey(CreateKey::createKeyPair())); print "Public Key: " . $crypt->getPublicKey() . "
"; try { $crypt->setPublicKey(CreateKey::createKeyPair()); } catch (RangeException $e) { print "Invalid range:
$e
"; } try { $crypt->setKeyPair(CreateKey::getPublicKey(CreateKey::createKeyPair())); } catch (RangeException $e) { print "Invalid range:
$e
"; } print ""; // __END__