Condividi tramite


SignedCms.ComputeSignature Metodo

Definizione

Crea una firma e aggiunge la firma al messaggio CMS/PKCS #7.

Overload

ComputeSignature(CmsSigner, Boolean)

Crea una firma utilizzando il firmatario specificato e aggiunge la firma al messaggio CMS/PKCS #7.

ComputeSignature()

Crea una firma e aggiunge la firma al messaggio CMS/PKCS #7.

ComputeSignature(CmsSigner)

Crea una firma utilizzando il firmatario specificato e aggiunge la firma al messaggio CMS/PKCS #7.

ComputeSignature(CmsSigner, Boolean)

Source:
SignedCms.cs
Source:
SignedCms.cs
Source:
SignedCms.cs

Crea una firma utilizzando il firmatario specificato e aggiunge la firma al messaggio 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)

Parametri

signer
CmsSigner

Oggetto CmsSigner che rappresenta il firmatario.

silent
Boolean

Solo .NET Core e .NET 5+: true per richiedere le chiavi di apertura con prompt DEL PIN disabilitati, se supportati; in caso contrario, false. In .NET Framework, questo parametro non viene usato e viene sempre visualizzata una richiesta di PIN, se necessario.

Eccezioni

signer è null.

Impossibile completare un'operazione di crittografia.

Solo .NET Framework: non è specificato un certificato di firma.

Solo .NET Core e .NET 5+: non è specificato un certificato di firma.

Commenti

Solo .NET Core: il silent parametro non ha alcun effetto se il CmsSigner.PrivateKey valore non è Null. Il valore specificato controlla se il calcolo della firma visualizza un prompt del PIN. Anche quando la PrivateKey proprietà è Null e il silent parametro è impostato su true, alcune combinazioni di opzioni del sistema operativo e del firmatario possono comunque generare un prompt del PIN.

Per visualizzare l'interfaccia utente in .NET Framework sono necessarie le autorizzazioni seguenti:

Per accedere alla chiave di firma in .NET Framework sono necessarie le autorizzazioni seguenti:

Si applica a

ComputeSignature()

Source:
SignedCms.cs
Source:
SignedCms.cs
Source:
SignedCms.cs

Crea una firma e aggiunge la firma al messaggio CMS/PKCS #7.

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

Eccezioni

.NET Core 3.0 (tutte le versioni)successive e .NET Core 3.0 e versioni successive: il certificato del destinatario non è specificato.

.NET Core versione 2.2 e versioni precedenti: non è stato specificato nessun certificato del firmatario .

Commenti

Questo metodo ha esito positivo se SubjectIdentifierType.NoSignature è stato fornito come signerIdentifierType argomento di uno degli overload del SignedCms costruttore. In caso contrario, il metodo genererà un'eccezione.

Per accedere alla chiave di firma in .NET Framework sono necessarie le autorizzazioni seguenti:

Si applica a

ComputeSignature(CmsSigner)

Source:
SignedCms.cs
Source:
SignedCms.cs
Source:
SignedCms.cs

Crea una firma utilizzando il firmatario specificato e aggiunge la firma al messaggio 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)

Parametri

signer
CmsSigner

Oggetto CmsSigner che rappresenta il firmatario.

Eccezioni

È stato passato un riferimento null a un metodo che non lo accetta come argomento valido.

Impossibile completare un'operazione di crittografia.

Esempio

Nell'esempio seguente vengono illustrati i passaggi per calcolare una firma in un SignedCms messaggio con contenuto del messaggio non scollegato. In questo caso, il contenuto del messaggio viene incluso nel SignedCms messaggio.

// 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.

Nell'esempio seguente vengono illustrati i passaggi per calcolare una firma in un SignedCms messaggio con contenuto del messaggio scollegato. In questo caso, il contenuto del messaggio deve essere verificato indipendentemente dal SignedCms messaggio.

// 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.

Commenti

Per accedere alla chiave di firma in .NET Framework sono necessarie le autorizzazioni seguenti:

Si applica a