如何使用 SignedCode

Jack J Jun 24,316 信誉分 Microsoft 供应商
2024-02-02T03:00:53.4433333+00:00

你好 最近我看到了有关CAPICOM的 https://learn.microsoft.com/it-it/windows/win32/seccrypto/signedcode?redirectedfrom=MSDN#methods 和其他文件.dll

如何调用此 DLL/activeX?

我有方法和属性,但我如何调用 SignedCode -> SignCode.verify.......

Note:此问题总结整理于:How to use SignedCode - Microsoft Q&A

VB
VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
78 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Hui Liu-MSFT 46,951 信誉分 Microsoft 供应商
    2024-02-02T07:14:26.56+00:00

    您好,您必须首先添加对 CAPICOM 的引用,然后像(此处的代码)一样使用它。

    
        Dim signeddata As CAPICOM.SignedData = New CAPICOM.SignedData()  
        Dim file As FileStream = File.Open(tbSourceFile.Text, FileMode.Open)  
        Dim Content As Byte() = New Byte(CInt(file.Length) - 1) {}  
        file.Read(Content, 0, CInt(file.Length))  
        file.Close()  
        Dim sw As StringWriter = New StringWriter()  
        sw.Write(Content)  
        signeddata.Content = sw.ToString()  
        Dim store As IStore = New CAPICOM.Store()  
        store.Open(CAPICOM.CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, "MY", CAPICOM.CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_READ_ONLY Or CAPICOM.CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_EXISTING_ONLY)  
        Dim certificates As ICertificates2 = CType(store.Certificates, ICertificates2)  
        certificates = certificates.Find(CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_KEY_USAGE, CAPICOM_KEY_USAGE.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE, True)  
      
        If certificates.Count > 0 Then  
            certificates = certificates.[Select]()  
        End If  
      
        If certificates.Count > 0 Then  
            Dim signers As ISigner2 = New CAPICOM.Signer()  
            signers.Certificate = certificates(1)  
            tbSignatureBlock.Text = signeddata.Sign(signers, True)  
        End If  
    
    

    请注意,CAPICOM 不再开发。 如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释