укажите открытый ключ в запросе CERTENROLL

#x509 #certenroll

#x509 #certenroll

Вопрос:

Я хочу запросить сертификат (с сервера сертификатов AD), используя шаблон. Я хочу предоставить открытый ключ в запросе. Используя образец SDK от msft

         IX509CertificateRequest iRequest = objEnroll.Request;

        // then get the inner PKCS10 request
        IX509CertificateRequest iInnerRequest = 
            iRequest.GetInnerRequest(InnerRequestLevel.LevelInnermost);
        IX509CertificateRequestPkcs10 iRequestPkcs10 = 
            iInnerRequest as IX509CertificateRequestPkcs10;

        // create CX500DistinguishedName
        CX500DistinguishedName objName = new CX500DistinguishedName();
        objName.Encode(subjectName, X500NameFlags.XCN_CERT_NAME_STR_NONE);

        // set up the subject name
        iRequestPkcs10.Subject = objName;
  

Я думаю, что тогда мне нужно сделать что-то вроде этого

          iRequestPkcs10.PublicKey.InitializeFromEncodedPublicKeyInfo(xx);
  

но я не знаю, что такое xx. У меня есть открытый ключ (в объекте bouncy castle PKCS10), но в каком формате он должен быть передан этой функции?

Ответ №1:

Вы можете указать открытый ключ в нескольких различных форматах.

Согласно MSDN, InitializeFromEncodedPublicKeyInfo принимает два параметра: первый — открытый ключ, а второй — значение перечисления EncodingType, которое определяет формат предоставляемого вами открытого ключа.

Комментарии:

1. Спасибо, это дает только синтаксическую кодировку (base64, raw hex и т.д.). В нем не указано, какой тип данных ожидается; Я имею в виду, если его base64, какие байты были введены для преобразования base64

2. А, понятно. Это как-нибудь поможет? msdn.microsoft.com/en-us/library/aa379039(v=VS.85).aspx