Partager via


Cosignation d’un document

[CAPICOM est un composant 32 bits uniquement disponible pour une utilisation dans les systèmes d’exploitation suivants : Windows Server 2008, Windows Vista et Windows XP. Utilisez plutôt .NET Framework pour implémenter des fonctionnalités de sécurité. Pour plus d’informations, consultez Alternatives à l’utilisation de CAPICOM.]

Un document peut être signé par plusieurs signataires. Cela se produit lorsque, par exemple, deux ou plusieurs parties signent un contrat ou un rapport de frais. Dans l’exemple suivant, un document déjà signé est reçu par un deuxième signataire. Ce signataire utilise la méthode CoSign pour attacher une signature supplémentaire au document.

Si une erreur CAPICOM se produit, une valeur négative est retournée dans la propriété Err.Number . Pour plus d’informations sur les codes d’erreur CAPICOM, consultez CAPICOM_ERROR_CODE. Si le code d’erreur dans la propriété Err.Number est une valeur positive, l’erreur est une erreur Windows. Pour plus d’informations sur les codes d’erreur Windows, consultez Winerror.h.

Notes

La cosignation d’un document nécessite également que le cosignateur dispose d’un certificat disponible avec une clé privée pour créer la signature. Si un signataire n’est pas spécifié dans l’appel de la méthode Sign et qu’il n’y a pas de certificat dans CAPICOM_MY_STORE avec une clé privée associée, la méthode échoue. S’il existe un seul certificat dans CAPICOM_MY_STORE avec une clé privée associée, cette clé et ce certificat sont utilisés. S’il existe plusieurs certificats utilisables, une invite s’affiche pour permettre à l’utilisateur de choisir le certificat souhaité.

Si la méthode CoSign est utilisée dans une application web, une invite s’affiche toujours pour obtenir l’autorisation de l’utilisateur avant qu’une signature soit créée à l’aide de la clé privée de ce signataire.

 

Dans l’exemple suivant, les fichiers qui contiennent le document à signer et les signatures actuelles sur ce document sont lus, la signature est cosignée et la nouvelle signature est écrite dans un fichier. L’exemple utilise une signature détachée avec les données signées et la signature dans des fichiers distincts.

Sub CoSignContent(ByVal InputFile1Name As String, ByVal _
    InputFile2Name As String, ByVal OutputFileName As String)

    On Error GoTo ErrorHandler
    Dim c As String
    Dim s As String
    Dim CS As String
    Dim Signobj As New SignedData
    Open InputFile1Name for Input as #1
    Input #1, s
    Close #1
    Open InputFileName2 for input as #2
    Input #2, c 
    Close #2

    Signobj.Content = c
    Signobj.Verify(s)
    CS = Signobj.CoSign
    Open OutputFileName for output as #3
    Write #3, CS
    Close # 3
    Signobj = Nothing
    MsgBox("Cosign finished. Cosignature saved to a file.")
    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