Jazyk

SignedCms.ComputeSignature Metoda

Definice

Vytvoří podpis a přidá podpis do zprávy CMS/PKCS #7.

Přetížení

Name Description
ComputeSignature(CmsSigner, Boolean)

Vytvoří podpis pomocí zadaného podepisující osoby a přidá podpis do zprávy CMS/PKCS #7.

ComputeSignature()

Vytvoří podpis a přidá podpis do zprávy CMS/PKCS #7.

ComputeSignature(CmsSigner)

Vytvoří podpis pomocí zadaného podepisující osoby a přidá podpis do zprávy CMS/PKCS #7.

ComputeSignature(CmsSigner, Boolean)

Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs

Vytvoří podpis pomocí zadaného podepisující osoby a přidá podpis do zprávy CMS/PKCS #7.

public:
 void ComputeSignature(System::Security::Cryptography::Pkcs::CmsSigner ^ signer, bool silent);
public void ComputeSignature(System.Security.Cryptography.Pkcs.CmsSigner signer, bool silent);
member this.ComputeSignature : System.Security.Cryptography.Pkcs.CmsSigner * bool -> unit
Public Sub ComputeSignature (signer As CmsSigner, silent As Boolean)

Parametry

signer
CmsSigner

Objekt CmsSigner , který představuje podepisující osoby.

silent
Boolean

Pouze .NET Core a .NET 5+ : true Pokud chcete požádat o otevírání klíčů pomocí výzev PIN, pokud je tato možnost podporovaná, v opačném případě false. V rozhraní .NET Framework se tento parametr nepoužívá a v případě potřeby se vždy zobrazí výzva k zadání kódu PIN.

Výjimky

signer je null.

Kryptografickou operaci nelze dokončit.

Pouze rozhraní .NET Framework: Podpisový certifikát není zadán.

Pouze .NET Core a .NET 5+ : Podpisový certifikát není zadán.

Poznámky

Pouze .NET Core: Parametr silent nemá žádný vliv, CmsSigner.PrivateKey pokud hodnota není null. Zadaná hodnota určuje, jestli se při výpočtu podpisu zobrazí výzva k zadání kódu PIN. I když PrivateKey je vlastnost null a silent parametr je nastaven na true, některé kombinace operačního systému a možnosti podepisující osoby můžou stále vést k zadání kódu PIN.

K zobrazení uživatelského rozhraní v rozhraní .NET Framework jsou vyžadována následující oprávnění:

Pro přístup ke klíči podpisu v rozhraní .NET Framework jsou vyžadována následující oprávnění:

Platí pro

ComputeSignature()

Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs

Vytvoří podpis a přidá podpis do zprávy CMS/PKCS #7.

public:
 void ComputeSignature();
public void ComputeSignature();
member this.ComputeSignature : unit -> unit
Public Sub ComputeSignature ()

Výjimky

Certifikát příjemce není zadán.

Poznámky

Tato metoda je úspěšná, pokud SubjectIdentifierType.NoSignature byla poskytována jako signerIdentifierType argument jednoho z přetížení konstruktoru SignedCms . V opačném případě vyvolá výjimku.

Pro přístup ke klíči podpisu v rozhraní .NET Framework jsou vyžadována následující oprávnění:

Platí pro

ComputeSignature(CmsSigner)

Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs
Zdroj:
SignedCms.cs

Vytvoří podpis pomocí zadaného podepisující osoby a přidá podpis do zprávy CMS/PKCS #7.

public:
 void ComputeSignature(System::Security::Cryptography::Pkcs::CmsSigner ^ signer);
public void ComputeSignature(System.Security.Cryptography.Pkcs.CmsSigner signer);
member this.ComputeSignature : System.Security.Cryptography.Pkcs.CmsSigner -> unit
Public Sub ComputeSignature (signer As CmsSigner)

Parametry

signer
CmsSigner

Objekt CmsSigner , který představuje podepisující osoby.

Výjimky

Odkaz null byl předán metodě, která ji nepřijímá jako platný argument.

Kryptografickou operaci nelze dokončit.

Příklady

Následující příklad ukazuje kroky pro výpočet podpisu zprávy s obsahem SignedCms zprávy, který není odpojen. V tomto případě je obsah zprávy součástí SignedCms zprávy.

// The dataToSign byte array holds the data to be signed.
ContentInfo contentInfo = new ContentInfo(dataToSign);

// Create a new, nondetached SignedCms message.
SignedCms signedCms = new SignedCms(contentInfo);

// Sign the message.
signedCms.ComputeSignature();

// Encode the message.
byte[] myCmsMessage = signedCms.Encode();

// The signed CMS/PKCS #7 message is ready to send.
// The original content is included in this byte array.
' The dataToSign byte array holds the data to be signed.
Dim contentInfo As New ContentInfo(dataToSign)

' Create a new, nondetached SignedCms message.
Dim signedCms As New SignedCms(contentInfo)

' Sign the message.
signedCms.ComputeSignature()

' Encode the message.
Dim myCmsMessage As Byte() = signedCms.Encode()

' The signed CMS/PKCS #7 message is ready to send.
' The original content is included in this byte array.

Následující příklad ukazuje kroky pro výpočet podpisu zprávy s obsahem SignedCms zprávy, který je odpojen. V takovém případě musí být obsah zprávy ověřený nezávisle na SignedCms zprávě.

// The dataToSign byte array holds the data to be signed.
ContentInfo contentInfo = new ContentInfo(dataToSign);

// Create a new, detached SignedCms message.
SignedCms signedCms = new SignedCms(contentInfo, true);

// Sign the message.
signedCms.ComputeSignature();

// Encode the message.
byte[] myCmsMessage = signedCms.Encode();

// The signed CMS/PKCS #7 message is ready to send.
// The original content is not included in this byte array.
' The dataToSign byte array holds the data to be signed.
Dim contentInfo As New ContentInfo(dataToSign)

' Create a new, detached SignedCms message.
Dim signedCms As New SignedCms(contentInfo, True)

' Sign the message.
signedCms.ComputeSignature()

' Encode the message.
Dim myCmsMessage As Byte() = signedCms.Encode()

' The signed CMS/PKCS #7 message is ready to send.
' The original content is not included in this byte array.

Poznámky

Pro přístup ke klíči podpisu v rozhraní .NET Framework jsou vyžadována následující oprávnění:

Platí pro