Compartilhar via


SignedCms.ComputeSignature Método

Definição

Cria uma assinatura e adiciona a assinatura à mensagem CMS/PKCS nº 7.

Sobrecargas

ComputeSignature(CmsSigner, Boolean)

Cria uma assinatura usando o signatário especificado e adiciona a assinatura à mensagem CMS/PKCS #7.

ComputeSignature()

Cria uma assinatura e adiciona a assinatura à mensagem CMS/PKCS nº 7.

ComputeSignature(CmsSigner)

Cria uma assinatura usando o signatário especificado e adiciona a assinatura à mensagem CMS/PKCS #7.

ComputeSignature(CmsSigner, Boolean)

Origem:
SignedCms.cs
Origem:
SignedCms.cs
Origem:
SignedCms.cs

Cria uma assinatura usando o signatário especificado e adiciona a assinatura à mensagem 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)

Parâmetros

signer
CmsSigner

Um objeto CmsSigner que representa o signatário.

silent
Boolean

Somente .NET Core e .NET 5+: true para solicitar chaves de abertura com prompts de PIN desabilitados, quando houver suporte; caso contrário, false. No .NET Framework, esse parâmetro não é usado e um prompt de PIN sempre é exibido, se necessário.

Exceções

signer é null.

Não foi possível concluir uma operação de criptografia.

Somente para o .NET Framework: um certificado de autenticação não é especificado.

Somente .NET Core e .NET 5+: um certificado de autenticação não é especificado.

Comentários

Somente .NET Core: o silent parâmetro não terá efeito se o CmsSigner.PrivateKey valor não for nulo. O valor fornecido controla se a computação da assinatura mostra ou não um prompt de PIN. Mesmo quando a PrivateKey propriedade é nula e o silent parâmetro é definido como true, algumas combinações de opções do sistema operacional e do signatário ainda podem resultar em um prompt de PIN.

As seguintes permissões são necessárias para exibir a interface do usuário no .NET Framework:

As seguintes permissões são necessárias para acessar a chave de assinatura no .NET Framework:

Aplica-se a

ComputeSignature()

Origem:
SignedCms.cs
Origem:
SignedCms.cs
Origem:
SignedCms.cs

Cria uma assinatura e adiciona a assinatura à mensagem CMS/PKCS nº 7.

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

Exceções

O .NET Framework (todas as versões) e o .NET Core 3.0 e posteriores: o certificado de destinatário não é especificado.

.NET Core versão 2.2 e anteriores: nenhum certificado do signatário era fornecido.

Comentários

Esse método terá êxito se SubjectIdentifierType.NoSignature tiver sido fornecido como o signerIdentifierType argumento de uma das sobrecargas do SignedCms construtor. Caso contrário, ele gera uma exceção.

As seguintes permissões são necessárias para acessar a chave de assinatura no .NET Framework:

Aplica-se a

ComputeSignature(CmsSigner)

Origem:
SignedCms.cs
Origem:
SignedCms.cs
Origem:
SignedCms.cs

Cria uma assinatura usando o signatário especificado e adiciona a assinatura à mensagem 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)

Parâmetros

signer
CmsSigner

Um objeto CmsSigner que representa o signatário.

Exceções

Uma referência nula foi passada para um método que não a aceita como um argumento válido.

Não foi possível concluir uma operação de criptografia.

Exemplos

O exemplo a seguir mostra as etapas para calcular uma assinatura em uma SignedCms mensagem com conteúdo de mensagem que não está desanexado. Nesse caso, o conteúdo da mensagem é incluído na SignedCms mensagem.

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

O exemplo a seguir mostra as etapas para calcular uma assinatura em uma SignedCms mensagem com conteúdo de mensagem desanexado. Nesse caso, o conteúdo da mensagem deve ser verificado independentemente da SignedCms mensagem.

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

Comentários

As seguintes permissões são necessárias para acessar a chave de assinatura no .NET Framework:

Aplica-se a