Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
[CAPICOM é um componente somente de 32 bits que está disponível para uso nos seguintes sistemas operacionais: Windows Server 2008, Windows Vista e Windows XP. Em vez disso, use o .NET Framework para implementar recursos de segurança. Para obter mais informações, consulte Alternativas ao Uso do CAPICOM.]
Para desencriptar uma mensagem envelopada, o destinatário corresponde a um certificado da loja My store que tem uma chave privada disponível com um certificado na mensagem envelopada. Se for encontrada uma correspondência, a chave encriptada associada a esse certificado é desencriptada e essa chave desencriptada é utilizada para desencriptar a mensagem envelopada. Um destinatário da mensagem que não tem um certificado correspondente com uma chave privada disponível não pode desencriptar a mensagem.
No exemplo a seguir, um nome de arquivo é passado para a sub-rotina, esse arquivo é aberto e uma mensagem envelopada é lida. A mensagem envelopada é então desencriptada. As etapas de combinar um certificado de usuário com um certificado na mensagem envelopada, de descriptografar a chave de criptografia e, finalmente, de descriptografar a mensagem são todas feitas nos bastidores. Um erro é gerado se uma correspondência de certificado não for encontrada ou se a descriptografia falhar.
Em qualquer erro CAPICOM, um valor decimal negativo de Err.Number é retornado. Para obter mais informações, consulte CAPICOM_ERROR_CODE. Para obter informações sobre valores decimais positivos de Err.Number , consulte Winerror.h.
Sub ReceiveMessage(ByVal InFile As String)
On Error GoTo ErrorHandler
'Declare an EnvelopedData object
Dim Envmessage As New EnvelopedData
'Declare a string variable to hold the encrypted message.
Dim Encrypted As String
' Open an input file and read in the encrypted message
Open InFile For Input As #1
Input #1, Encrypted
Close #1
' If the length of the input string is greater than 0,
' an encrypted message string is available. Decrypt the message.
' Note: to decrypt the message, a certificate with access to
' a user's private key must be available, and that certificate must
' match one of the certificates in the Recipients collection of
' certificates.
If Len(Encrypted) > 0 Then
' Receive and decrypt the message
Envmessage.Decrypt encrypted
' Display the decrypted message.
MsgBox Envmessage.Content
Else
MsgBox "No enveloped message was read in."
End If
' Release the EncryptedData object.
Set Envmessage = Nothing
Exit Sub
ErrorHandler:
If Err.Number > 0 Then
MsgBox "Visual Basic error found:" & Err.Description
Else
MsgBox "CAPICOM error found : " & Err.Number
End If
End Sub