SignedCms.ComputeSignature Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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
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: