Как создать сертификат DER/PEM из общедоступного показателя и модуля RSA?


Как мы знаем, открытый ключ состоит из открытого показателя степени и модуля.

Мои вопросы таковы:

Как создать сертификат DER/PEM из общедоступного показателя и модуля RSA?

Заранее большое вам спасибо.

Author: xmllmx, 2011-05-12

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.

 5
Author: , 2011-05-14 01:00:10