public function generate()
{
$strong = false;
$i = 0;
while (!$strong && $this->maxTries > $i++) {
$data = openssl_random_pseudo_bytes(32, $strong);
}
if (!$strong) {
throw new RuntimeException('Could not generate private key');
}
// base64_encode to get a decent ascii compatible format, and trim ending ='s.
$key = rtrim(base64_encode($data), '=');
// We change +/ into -_ to avoid any human confusion with paths
return strtr($key, '+/', '-_');
}