Как создать сертификат x509, основанный исключительно на открытом ключе в формате RSA? - PullRequest
0 голосов
/ 15 ноября 2011

У меня есть открытый ключ RSA в формате XML.Мне нужно взять этот ключ и создать сертификат x.509, используя этот открытый ключ.У меня нет доступа к закрытому ключу для завершения пары ключей.Все примеры, которые я нашел, включают либо генерацию пары ключей, либо доступ к открытым и закрытым ключам.

Ниже приведен небольшой фрагмент программы тестирования, над которой я работал, чтобы выполнить это.

RSACryptoServiceProvider provider = new RSACryptoServiceProvider();
        provider.FromXmlString("<RSAKeyValue><Modulus>puEVvRbrLAz.......c1W5j/vqJSUrXo16k=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>");

       Org.BouncyCastle.Crypto.Parameters.RsaKeyParameters key = Org.BouncyCastle.Security.DotNetUtilities.GetRsaPublicKey(provider);

//<!*** Do some code to take RsaKeyParameters and create an x.509 Certificate ***>

        var fOut = new System.IO.StreamWriter(@"C:\certificate.pem", false);
        var pw = new Org.BouncyCastle.OpenSsl.PemWriter(fOut);
        pw.WriteObject(key);

1 Ответ

2 голосов
/ 26 декабря 2012

Просто чтобы прояснить вопрос невозможности генерации сертификата только с использованием открытого ключа.

AFAIK, сертификат должен быть подписан . И это должно быть сделано с закрытым ключом - вот почему он нужен для генерации сертификата. Если сертификат подписан парным закрытым ключом открытого ключа, для которого вы собираетесь выдать сертификат, то это самозаверяющий сертификат. В противном случае вам понадобится закрытый ключ так называемого центра сертификации для подписи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...