CAPI不支持基于密码的加密(PBE)加密?

mal*_*lat 8 c++ cryptoapi pbkdf2

我正在尝试使用OpenSSL(PKCS#5和PKCS#7)将UNIX代码移植到Windows.

在OpenSSL的情况下,所有编码/解码(证书或密码)都是在CMS_Encrypt函数中对调用者透明地完成的 ,应该是这样.

CAPI在函数CryptEncryptMessage内部进行基于证书的加密时也会做同样的事情 (没有向调用者显示ASN详细信息).经过一些谷歌搜索,我发现了以下密钥生成实现.现在我该如何在CAPI中使用它?

因为CAPI不支持高级别的PBE加密(PBKDF2),我的猜测是必须手动完成编码(不知何故?).手动我的意思是写(和读)各种ASN标签的二进制表示.我该怎么做?

我无法访问msasn1.h API,因为msasn1.lib永远不会分发.除了基于证书的加密之外,有没有人能够使用CAPI接口做其他事情?