Compartilhar via


Método SignedData.CoSign

[O método CoSign está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Em vez disso, use a classe SignedCms no namespace System.Security.Cryptography.Pkcs .]

O método CoSign cria uma assinatura digital no conteúdo assinado anteriormente.

Sintaxe

SignedData.CoSign( _
  [ ByVal Signer ], _
  [ ByVal EncodingType ] _
)

Parâmetros

Signatário [in, opcional]

Uma referência ao objeto Signer do signatário dos dados. O objeto Signer deve ter acesso à chave privada do certificado usado para assinar. Esse parâmetro pode ser NULL; para obter mais informações, consulte Comentários.

EncodingType [in, opcional]

Um valor da enumeração CAPICOM_ENCODING_TYPE que indica como os dados assinados devem ser codificados. O valor padrão é CAPICOM_ENCODE_BASE64. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
CAPICOM_ENCODE_ANY
Esse tipo de codificação é usado somente quando os dados de entrada têm um tipo de codificação desconhecido. Se esse valor for usado para especificar o tipo de codificação da saída, CAPICOM_ENCODE_BASE64 será usado. Introduzido no CAPICOM 2.0.
CAPICOM_ENCODE_BASE64
Os dados são salvos como uma cadeia de caracteres codificada em base64.
CAPICOM_ENCODE_BINARY
Os dados são salvos como uma sequência binária pura.

 

Valor retornado

Esse método retorna uma cadeia de caracteres que contém os dados codificados e assinados.

Se esse método falhar, um erro será gerado. O objeto Err conterá informações adicionais sobre o erro.

Comentários

Importante

Quando esse método é chamado de um script web, o script precisa usar sua chave privada para criar uma assinatura digital. Permitir que sites não confiáveis usem sua chave privada é um risco à segurança. Uma caixa de diálogo que pergunta se o site pode usar sua chave privada é exibida quando esse método é chamado pela primeira vez. Se você permitir que o script use sua chave privada para criar uma assinatura digital e selecionar "Não mostrar essa caixa de diálogo novamente", a caixa de diálogo não aparecerá mais para nenhum script dentro desse domínio que use sua chave privada para criar uma assinatura digital. No entanto, scripts fora desse domínio que tentam usar sua chave privada para criar uma assinatura digital ainda farão com que essa caixa de diálogo apareça. Se você não permitir que o script use sua chave privada e selecione "Não mostrar essa caixa de diálogo novamente", os scripts dentro desse domínio serão automaticamente recusados a capacidade de usar sua chave privada para criar assinaturas digitais.

 

Não há garantia de que os cosigners estejam em nenhuma ordem específica.

Os seguintes resultados se aplicam ao valor do parâmetro Signer :

  • Se o parâmetro Signer não for NULL, esse método usará a chave privada apontada pelo certificado associado para criptografar a cosignature. Se a chave privada apontada pelo certificado não estiver disponível, o método falhará.
  • Se o parâmetro Signer for NULL e houver exatamente um certificado no repositório my CURRENT_USER que tenha acesso a uma chave privada, esse certificado será usado para criar a cosignature.
  • Se o parâmetro Signer for NULL, o valor da propriedade Settings.EnablePromptForCertificateUI for true e houver mais de um certificado no CURRENT_USER meu repositório com uma chave privada disponível, será exibida uma caixa de diálogo que permite que o usuário selecione qual certificado é usado.
  • Se o parâmetro Signer for NULL e a propriedade Settings.EnablePromptForCertificateUI for false, o método falhará.
  • Se o parâmetro Signer for NULL e não houver certificado no CURRENT_USER meu repositório com uma chave privada disponível, o método falhará.

Requisitos

Requisito Valor
Redistribuível
CAPICOM 2.0 ou posterior no Windows Server 2003 e Windows XP
DLL
Capicom.dll

Confira também

Objetos de criptografia

SignedData