数字签名及其加密解密应用开发指南
1. 数字签名与加密相关参数说明
在进行数字签名和消息加密操作时,有两个重要的参数需要了解。第十二个参数 ppXchgCert
是一个指向 CERT_CONTEXT
类型结构的指针,用于存储加密消息所使用的证书。它和 CryptDecryptMessage
函数中的对应参数作用相同。若不需要该证书,可将此参数设为 0。第十三个参数 ppSignerCert
同样是指向 CERT_CONTEXT
类型结构的指针,用于存储签署消息所用的证书,与 CryptVerifyMessageSignature
函数中的对应参数一致,不需要时也可设为 0。需要注意的是,通过函数返回的 CERT_CONTEXT
必须使用 CertFreeCertificateContext
函数释放。
2. 开发签名工具项目创建
为了实践这些函数的使用,我们将开发一个能对消息进行签名、验证、加密和解密的小工具。以下是项目创建的具体步骤:
1. 在 Visual Basic 中创建一个新的标准 EXE 项目。
2. 把之前示例应用中的加密类复制到项目目录,并将其包含到新项目中。
3. 编辑加密类的声明部分,添加新的常量、类型、函数和变量声明,具体代码如下:
Const CERT_FIND_ANY = 0
Const CERT_FIND_EX