다음을 통해 공유


문서 공동 서명

[CAPICOM은 Windows Server 2008, Windows Vista 및 Windows XP 운영 체제에서 사용할 수 있는 32비트 전용 구성 요소입니다. 대신 .NET Framework 사용하여 보안 기능을 구현합니다. 자세한 내용은 CAPICOM 사용에 대한 대안을 참조하세요.]

두 명 이상의 서명자가 문서에 서명할 수 있습니다. 이는 instance 두 명 이상의 당사자가 계약 또는 비용 보고서에 서명할 때 발생합니다. 다음 예제에서는 이미 서명된 문서를 두 번째 서명자가 받습니다. 이 서명자는 CoSign 메서드를 사용하여 문서에 추가 서명을 첨부합니다.

CAPICOM 오류가 발생하면 Err.Number 속성에 음수 값이 반환됩니다. CAPICOM 오류 코드에 대한 자세한 내용은 CAPICOM_ERROR_CODE 참조하세요. Err.Number 속성의 오류 코드가 양수 값인 경우 오류는 Windows 오류입니다. Windows 오류 코드에 대한 자세한 내용은 Winerror.h를 참조하세요.

참고

또한 문서를 공동 서명하려면 공동 서명자에게 서명을 만들기 위해 프라이빗 키가 있는 사용 가능한 인증서가 있어야 합니다. Sign 메서드 호출에서 서명자를 지정하지 않고 연결된 프라이빗 키를 사용하여 CAPICOM_MY_STORE 인증서가 없으면 메서드가 실패합니다. 연결된 프라이빗 키를 사용하여 CAPICOM_MY_STORE 인증서가 하나만 있는 경우 해당 키와 인증서가 사용됩니다. 사용 가능한 인증서가 두 개 이상 있는 경우 사용자가 원하는 인증서를 선택할 수 있도록 프롬프트가 표시됩니다.

웹 기반 애플리케이션에서 CoSign 메서드를 사용하는 경우 서명자의 프라이빗 키를 사용하여 서명을 만들기 전에 항상 사용자의 권한을 가져오는 프롬프트가 표시됩니다.

 

다음 예제에서는 서명할 문서가 포함된 파일과 해당 문서의 현재 서명을 읽고, 서명이 공동 서명되고, 새 서명이 파일에 기록됩니다. 이 예제에서는 서명된 데이터와 별도의 파일의 서명이 있는 분리된 서명을 사용합니다.

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