当前位置:编程学习 > 网站相关 >>

CryptoAPI是如何调用CSP的?

那位大虾知道,CryptoAPI是怎么调用CSP的呢?
数据是怎样从CryptoAPI的函数传递到底层的CSP的?

我想知道数据传递的流程,譬如说从应用层开始,调用了CryptoAPI的函数CrytpDeriveKey获取会话密钥,但实际完成获取会话密钥应该是由CSP的相应函数完成的,对吗?

那么怎么将CryptDeriveKey中的参数传递到CSP中呢? --------------------编程问答-------------------- 谁有CSP的源代码?是否可以一览? --------------------编程问答-------------------- 略知一二,希望能对你有所帮助。


CryptoAPI是MS定义的标准接口;而CSP是密钥服务提供者,简单说来,其实就是DLL库封装了一些加解密算法。
CSP需要有专一的名称,dll也需要MS签名,CSP名称和这个签名的DLL注册之后,CryptoAPI就可以根据CSP名称调用对应的dll中的密码算法了。
这就是为什么CryptoAPI的第一个函数是输入CSP名称来获取CSP句柄的原因。

CSP的源代码俺也没有见过,:) --------------------编程问答-------------------- 接分是王道! --------------------编程问答-------------------- 好像没那么简单,呵呵. --------------------编程问答-------------------- 不明LZ在说什么 --------------------编程问答-------------------- msdn上不是很多吗 --------------------编程问答-------------------- CryptoAPI传递到CryptoSPI(系统编程接口),CSP开发者必须都实现CryptoSPI的20多个函数接口。
这样最终:应用程序->CryptpAPI->CryptoSPI->CSP对每个CryptoSPI函数的具体实现 --------------------编程问答--------------------
引用 2 楼 xiaomagee 的回复:
略知一二,希望能对你有所帮助。


CryptoAPI是MS定义的标准接口;而CSP是密钥服务提供者,简单说来,其实就是DLL库封装了一些加解密算法。
CSP需要有专一的名称,dll也需要MS签名,CSP名称和这个签名的DLL注册之后,CryptoAPI就可以根据CSP名称调用对应的dll中的密码算法了。
这就是为什么CryptoAPI的第一个函数是输入CSP名称来获取CSP句柄的原因……

说的差不多。
CSP的DLL是需要MS签名的。
找到签名和DLL是通过注册表里面的表项和值来找到。
CSP代码你去找找有没有开源的。
去开源网站上找找。
PKCS11的倒是有开源的。
估计谁家产品的代码也不会放出来给大家瞧瞧吧。
补充:云计算 ,  云安全
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,