Sdílet prostřednictvím


SignedCms.ComputeSignature Metoda

Definice

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

Přetížení

ComputeSignature(CmsSigner, Boolean)

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

ComputeSignature()

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

ComputeSignature(CmsSigner)

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

ComputeSignature(CmsSigner, Boolean)

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

Vytvoří podpis pomocí zadané podepisujícího a přidá ho 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ího.

silent
Boolean

Pouze .NET Core a .NET 5+: true pokud chcete požádat o otevření klíčů se zakázanými výzvami k zadání PIN kódu, pokud je to podporováno, falsejinak . 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í zadaný.

Poznámky

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

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

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

Výjimky

.NET Framework (všechny verze) a .NET Core 3.0 a novější: Certifikát příjemce není zadaný.

.NET Core verze 2.2 a starší: Nebyl poskytnut žádný certifikát podepisující.

Poznámky

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

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

Vytvoří podpis pomocí zadané podepisujícího a přidá ho 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ího.

Výjimky

Na metodu, která ji nepřijímá jako platný argument, byl předán odkaz null.

Kryptografickou operaci nelze dokončit.

Příklady

Následující příklad ukazuje postup výpočtu podpisu u zprávy s obsahem SignedCms zprávy, který není odpojený. V tomto případě je SignedCms součástí zprávy obsah 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 postup výpočtu podpisu ve SignedCms zprávě s odpojeným obsahem zprávy. 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