Код для моего контроллера шифрования показан ниже. Это прекрасно работает в отдельной рабочей директории от моей установки kohana.
class Controller_Crypt extends Controller_Home
{
public static function Encrypt_This($sensitive)
{
//file path must be relative to directory, also derp.
$pubkey = openssl_pkey_get_public('file://' . URL::site('../../private/public');
openssl_public_encrypt($sensitive, $cipher, $pubkey);
return base64_encode($cipher);
return $cipher;
}
public static function Decrypt_This($cipher, $pass)
{
$cipher = base64_decode($cipher);
//file path must be relative to directory, also derp.
$prkey = 'file://' . URL::site('../../private/private');
$privatekey = openssl_pkey_get_private($prkey, $pass);
openssl_private_decrypt($cipher, $sensitive, $privatekey);
return $sensitive;
}
}
Хотя, по какой-то причине я не понимаю, я получаю эту ошибку:
ErrorException [ Warning ]: openssl_private_decrypt() [function.openssl-private-decrypt]: key parameter is not a valid private key
Еще раз я проверил этот код отдельно от приложения kohana, и он отлично работает, расшифровывая $ cipher.
Я ни в коем случае не эксперт по использованию openssl, поэтому, если кто-нибудь знает, в чем здесь проблема, и может просветить меня, я был бы очень признателен.