SignedCms.ComputeSignature Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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, false
jinak . 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
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í: