gpt4 book ai didi

c++ - 如何使用 xmlsec 和 CSP 对 XML 进行签名?

转载 作者:行者123 更新时间:2023-12-05 08:03:24 25 4
gpt4 key购买 nike

我需要使用 xmlsec 和 csp 提供的证书对 XML 进行签名。 (仅限 C++、Linux)这是简化的代码。

HCERTSTORE hStore = NULL;
hStore = CertOpenStore();
PCCERT_CONTEXT pContext = CertFindCertificateInStore(hStore...);
//xml preparation using libxml2

xmlSecKeyPtr signKey = xmlSecKeyCreate();
xmlSecDSigCtxPtr dsigCtx = xmlSecDSigCtxCreate(mngr);
dsigCtx->signKey = ???; // How to set sign key?
xmlSecDSigCtxSign(dsigCtx, signNode);

如何设置签名 key ?如何从证书中提取它?在 Java 中,它是由 CryptAcquireCertificatePrivateKey 和 cryptSetProvParam 设置密码完成的。但在 Linux 中,此调用没有成功。

最佳答案

你看过documentation了吗? ?试试这两个链接:

https://www.aleksey.com/xmlsec/api/xmlsec-verify-with-key.html

https://www.aleksey.com/xmlsec/api/xmlsec-notes-sign.html

具体来说,这一行看起来像是设置了签名 key ,其中 key_file 是一个字符数组:

dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL);

这应该有助于从证书中获取 key : How can I extract a key from an SSL certificate?

关于c++ - 如何使用 xmlsec 和 CSP 对 XML 进行签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73397698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com