<?php
require_once 'OpenSSL.php';
require_once 'OpenSSL/Cert.php';
PEAR::setErrorHandling(PEAR_ERROR_PRINT);
try {
/**
* Files were generated with openssl
*
* SELF-SIGNED CERTIFICATE
* openssl req -new -x509 -keyout cakey.pem -out cacert.pem -days 3650 -text
*
*/
//Create a new OpenSSL_Cert class
$Cert = new Crypt_OpenSSL_Cert('certs/cacert.pem', 'certs/cakey.pem', 'passphrase');
//Class handler for OpenSSL_Cert class
$OpenSSL = new Crypt_OpenSSL($Cert);
} catch (Crypt_OpenSSL_Cert_Exception $e) {
echo $e->getMessage() . "\n";
}
//Other way to setup files
/*
$Cert->setCert('certs/testcert.crt');
$Cert->setKey('certs/testcert.key', 'passphrase');
*/
//Get some info about cert
echo "Certificate's common name: " . $Cert->subject['commonName'] . "\n";
//Check if a private key corresponds to a certificate
if($Cert->check()) {
echo "Cert is OK!\n";
}
//Verify signature
$data = "Follow the white rabit!";
$signature = $OpenSSL->signature($data);
if($OpenSSL->verify('Follow the white rabit!', $signature)) {
echo "\$signature is OK!\n";
}
//Encryption via cert
$ar = $OpenSSL->encrypt('The matrix is YOU!');
// Decription
echo $OpenSSL->decrypt($ar['0'], $ar['1']);
?>
|