SignedCms.ComputeSignature Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Cria uma assinatura e adiciona a assinatura à mensagem CMS/PKCS #7.
Sobrecargas
| Name | Description |
|---|---|
| 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 #7. |
| ComputeSignature(CmsSigner) |
Cria uma assinatura usando o signatário especificado e adiciona a assinatura à mensagem CMS/PKCS #7. |
ComputeSignature(CmsSigner, Boolean)
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
- silent
- Boolean
.NET Core e .NET apenas 5+: true para solicitar chaves de abertura com os prompts PIN desativados, quando suportado; caso contrário, false. No .NET Framework, este parâmetro não é utilizado e é sempre apresentado um prompt de PIN, se necessário.
Exceções
signer é null.
Uma operação criptográfica não pôde ser concluída.
Apenas .NET Framework: Não é especificado um certificado de assinatura.
.NET Core e .NET 5+ apenas: Não é especificado um certificado de assinatura.
Observações
.NET Apenas Núcleo: O parâmetro silent não tem efeito se o valor CmsSigner.PrivateKey não for nulo. O valor fornecido controla se o cálculo da assinatura mostra ou não um prompt PIN. Mesmo quando a PrivateKey propriedade é nula e o silent parâmetro está definido para true, algumas combinações de opções do sistema operativo e do signatário podem ainda resultar num prompt de PIN.
São necessárias as seguintes permissões para mostrar a interface de utilizador no .NET Framework:
São necessárias as seguintes permissões para aceder à chave de assinatura no .NET Framework:
Aplica-se a
ComputeSignature()
Cria uma assinatura e adiciona a assinatura à mensagem CMS/PKCS #7.
public:
void ComputeSignature();
public void ComputeSignature();
member this.ComputeSignature : unit -> unit
Public Sub ComputeSignature ()
Exceções
O certificado do destinatário não é especificado.
Observações
Este método tem sucesso se SubjectIdentifierType.NoSignature for fornecido como signerIdentifierType argumento de uma das SignedCms sobrecargas dos construtores. Caso contrário, lança uma exceção.
São necessárias as seguintes permissões para aceder à chave de assinatura no .NET Framework:
Aplica-se a
ComputeSignature(CmsSigner)
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
Exceções
Uma referência nula foi passada a um método que não a aceita como argumento válido.
Uma operação criptográfica não pôde ser concluída.
Exemplos
O exemplo seguinte mostra os passos para calcular uma assinatura numa SignedCms mensagem cujo conteúdo da mensagem não está destacado. Neste 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 seguinte mostra os passos para calcular uma assinatura numa SignedCms mensagem cujo conteúdo da mensagem é destacado. Neste 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.
Observações
São necessárias as seguintes permissões para aceder à chave de assinatura no .NET Framework: