- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/rsaopenssl.php
- Класс: CRsaOpensslProvider
- Вызов: CRsaOpensslProvider::Keygen
public function Keygen($keylen=false)
{
if($keylen === false)
$keylen = 1024;
else
$keylen = intval($keylen);
$fname = $_SERVER["DOCUMENT_ROOT"]."/bitrix/tmp/openssl.cnf";
if(!file_exists($fname))
{
CheckDirPath($fname);
file_put_contents($fname, '');
}
$keys = openssl_pkey_new(array(
"private_key_type"=>OPENSSL_KEYTYPE_RSA,
"private_key_bits"=>$keylen,
"config" => $fname,
));
if($keys)
{
openssl_pkey_export($keys, $privkey, null, array("config" => $fname));
$k = self::get_openssl_key_details($privkey);
if(is_array($k))
{
return array(
"M" => base64_encode(strrev($k['n'])),
"E" => base64_encode(strrev($k['e'])),
"D" => base64_encode(strrev($k['d'])),
"PRIV" => $privkey,
"chunk" => $keylen/8,
);
}
}
return false;
}