Как создать сертификат DER/PEM из общедоступного показателя и модуля RSA?
Как мы знаем, открытый ключ состоит из открытого показателя степени и модуля.
Мои вопросы таковы:
Как создать сертификат DER/PEM из общедоступного показателя и модуля RSA?
Заранее большое вам спасибо.
5
1 answers
С публичным показателем и модулем лучшее, на что вы могли бы надеяться, - это получить что-то вроде этого:
-----BEGIN PUBLIC KEY-----
MIGGAoGAfHlcdrcuOK6C02rbGR3SgV/ZJ2wnTiFBguh5FHduoB6LcZz49LIC/KcIiH/TckK8GxQd
oJ7wHCPBpNiumrlC6caj/C8jO/HZ3cb12Wuk4gUuJq1lg5+HTv4KRJ9pFeEFQqS6X+BTztY+EoRx
uc8MlLXS4PUeouwd9Ios2K0Y5/sCASU=
-----END PUBLIC KEY-----
Тем не менее, обычно файлы DER/PEM используются для хранения закрытых ключей, и вы не сможете получить закрытый показатель, когда у вас есть только открытый. Если, однако, вышеизложенное - это то, что вы ищете, дайте мне знать, и я смогу опубликовать дальнейшие инструкции о том, как получить его из модуля/публичного показателя!
Редактировать: Вот как я бы сделал это:
<?php
include('Crypt/RSA.php');
$modulus = new Math_BigInteger($modulusBinaryString, 256);
$exponent = new Math_BigInteger($exponentBinaryString, 256);
$rsa = new Crypt_RSA();
$rsa->modulus = $modulus;
$rsa->exponent = $exponent;
$rsa->publicExponent = $exponent;
$rsa->k = strlen($rsa->modulus->toBytes());
echo $rsa->getPublicKey(CRYPT_RSA_PRIVATE_FORMAT_PKCS1);
?>
Я использую phpseclib, чистую реализацию PHP RSA.