CertificateRequest.CreateSigningRequest Metoda

Definice

Přetížení

CreateSigningRequest()

Vytvoří hodnotu PKCS#10 CertificationRequest s kódováním ASN.1 DER, která představuje stav aktuálního objektu.

CreateSigningRequest(X509SignatureGenerator)

Vytvoří ASN.1 PKCS#10 CertificationRequest představující aktuální stav aktuálního objektu pomocí poskytnutého generátoru podpisů.

CreateSigningRequest()

Vytvoří hodnotu PKCS#10 CertificationRequest s kódováním ASN.1 DER, která představuje stav aktuálního objektu.

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

Návraty

Byte[]

Žádost o podepsání certifikátu s kódováním DER

Výjimky

Aktuální objekt byl vytvořen pomocí konstruktoru, který nepřijímá podpisový klíč.

Hodnota HashAlgorithm vlastnosti není podporována.

Poznámky

Tato metoda nepodporuje použití MD5 nebo SHA-1 jako algoritmu hash podpisu žádosti o podepsání. Pokud potřebujete podpisový požadavek založený na MD5 nebo SHA-1, musíte implementovat vlastní X509SignatureGenerator a volat CreateSigningRequest(X509SignatureGenerator).

Při odesílání žádosti o podepsání certifikátu prostřednictvím webového prohlížeče nebo jiného grafického nebo textového rozhraní se často očekává, že vstup bude ve formátu PEM (Privacy Enhanced Mail) místo binárního formátu DER. Chcete-li převést návratovou hodnotu na formát PEM, vytvořte řetězec skládající se z -----BEGIN CERTIFICATE REQUEST-----nového řádku, reprezentaci požadavku kódování Base-64 (podle konvence, řádkování na 64 znaků), nový řádek a -----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();
}

Platí pro

CreateSigningRequest(X509SignatureGenerator)

Vytvoří ASN.1 PKCS#10 CertificationRequest představující aktuální stav aktuálního objektu pomocí poskytnutého generátoru podpisů.

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()

Parametry

signatureGenerator
X509SignatureGenerator

Generátor podpisů, se kterým se má žádost podepsat.

Návraty

Byte[]

Žádost o podepsání certifikátu s kódováním DER

Výjimky

signatureGenerator je null.

Platí pro