/**
* Returns a private key (adding header & footer if required).
*
* @param string $key A private key
* @param bool $heads True if we want to include head and footer
*
* @return string $rsaKey Formatted private key
*/
public static function formatPrivateKey($key, $heads = true)
{
$key = str_replace(array("\r", "\r", "\n"), "", $key);
if (!empty($key)) {
if (strpos($key, '-----BEGIN PRIVATE KEY-----') !== false) {
$key = OneLogin_Saml2_Utils::get_string_between($key, '-----BEGIN PRIVATE KEY-----', '-----END PRIVATE KEY-----');
$key = str_replace(' ', '', $key);
if ($heads) {
$key = "-----BEGIN PRIVATE KEY-----\n" . chunk_split($key, 64, "\n") . "-----END PRIVATE KEY-----\n";
}
} else {
if (strpos($key, '-----BEGIN RSA PRIVATE KEY-----') !== false) {
$key = OneLogin_Saml2_Utils::get_string_between($key, '-----BEGIN RSA PRIVATE KEY-----', '-----END RSA PRIVATE KEY-----');
$key = str_replace(' ', '', $key);
if ($heads) {
$key = "-----BEGIN RSA PRIVATE KEY-----\n" . chunk_split($key, 64, "\n") . "-----END RSA PRIVATE KEY-----\n";
}
} else {
$key = str_replace(' ', '', $key);
if ($heads) {
$key = "-----BEGIN RSA PRIVATE KEY-----\n" . chunk_split($key, 64, "\n") . "-----END RSA PRIVATE KEY-----\n";
}
}
}
}
return $key;
}