private function generateKey($outputDirectory)
{
$res = openssl_pkey_new(array("private_key_type" => OPENSSL_KEYTYPE_RSA, "private_key_bits" => 4096));
if (!openssl_pkey_export($res, $privateKey)) {
throw new \RuntimeException("Key export failed!");
}
$details = openssl_pkey_get_details($res);
if (!is_dir($outputDirectory)) {
@mkdir($outputDirectory, 0700, true);
}
if (!is_dir($outputDirectory)) {
throw new \RuntimeException("Cant't create directory {$outputDirectory}");
}
file_put_contents($outputDirectory . '/private.pem', $privateKey);
file_put_contents($outputDirectory . '/public.pem', $details['key']);
}