CertificateRequest.CreateSigningRequest Метод

Определение

Перегрузки

CreateSigningRequest()

Создает значение PKCS#10 CertificationRequest с кодировкой ASN.1 DER, представляющее состояние текущего объекта.

CreateSigningRequest(X509SignatureGenerator)

Создает объект PKCS#10 CertificationRequest с кодировкой ASN.1 DER, представляющий текущее состояние текущего объекта, с использованием предоставленного генератора подписей.

CreateSigningRequest()

Создает значение PKCS#10 CertificationRequest с кодировкой ASN.1 DER, представляющее состояние текущего объекта.

public:
 cli::array <System::Byte> ^ CreateSigningRequest();
public byte[] CreateSigningRequest ();
member this.CreateSigningRequest : unit -> byte[]
Public Function CreateSigningRequest () As Byte()

Возвращаемое значение

Byte[]

Запрос подписи сертификата с кодировкой DER.

Исключения

Текущий объект был создан с помощью конструктора, который не принимает ключ подписывания.

Значение свойства HashAlgorithm не поддерживается.

Комментарии

Этот метод не поддерживает использование MD5 или SHA-1 в качестве хэш-алгоритма для подписи запроса подписи. Если вам нужен запрос на подписывание на основе MD5 или SHA-1, необходимо реализовать пользовательский X509SignatureGenerator и вызов CreateSigningRequest(X509SignatureGenerator).

При отправке запроса на подписывание сертификата через веб-браузер или другой графический или текстовый интерфейс входные данные часто должны находиться в формате "Расширенная почта конфиденциальности" (PEM), а не в двоичном формате DER. Чтобы преобразовать возвращаемое значение в формат PEM, сделайте строку, состоящую из -----BEGIN CERTIFICATE REQUEST-----новой строки, представления запроса в кодировке Base-64 (по соглашению, строки, преобразованные в 64 символов), новой строки и -----END CERTIFICATE REQUEST-----.

public static string PemEncodeSigningRequest(CertificateRequest request, PkcsSignatureGenerator generator)
{
    byte[] pkcs10 = request.CreateSigningRequest(generator);
    StringBuilder builder = new StringBuilder();

    builder.AppendLine("-----BEGIN CERTIFICATE REQUEST-----");

    string base64 = Convert.ToBase64String(pkcs10);

    int offset = 0;
    const int LineLength = 64;

    while (offset < base64.Length)
    {
        int lineEnd = Math.Min(offset + LineLength, base64.Length);
        builder.AppendLine(base64.Substring(offset, lineEnd - offset));
        offset = lineEnd;
     }

     builder.AppendLine("-----END CERTIFICATE REQUEST-----");
     return builder.ToString();
}

Применяется к

CreateSigningRequest(X509SignatureGenerator)

Создает объект PKCS#10 CertificationRequest с кодировкой ASN.1 DER, представляющий текущее состояние текущего объекта, с использованием предоставленного генератора подписей.

public:
 cli::array <System::Byte> ^ CreateSigningRequest(System::Security::Cryptography::X509Certificates::X509SignatureGenerator ^ signatureGenerator);
public byte[] CreateSigningRequest (System.Security.Cryptography.X509Certificates.X509SignatureGenerator signatureGenerator);
member this.CreateSigningRequest : System.Security.Cryptography.X509Certificates.X509SignatureGenerator -> byte[]
Public Function CreateSigningRequest (signatureGenerator As X509SignatureGenerator) As Byte()

Параметры

signatureGenerator
X509SignatureGenerator

Генератор подписей, используемый для подписи запроса.

Возвращаемое значение

Byte[]

Запрос подписи сертификата с кодировкой DER.

Исключения

signatureGenerator имеет значение null.

Применяется к