简谈Openssl与usbkey证书认证相结合

来源:互联网 发布:seo排名优化是什么 编辑:程序博客网 时间:2024/05/15 13:42

一般windows客户端在做证书认证时候,使用微软的winnet相关的函数即可。

但在某些情况下,这种方式不够灵活自由,那么就可以使用openssl库来实现。对于使用p12证书进行客户端认证的代码

在网上随便可以搜出一大堆,但是结合usbkey进行认证的就少之又少。这里介绍一下openssl里的engine技术来解决这种方法。


1.使用较新版本的openssl自带的capi引擎,该引擎即是CryptoAPI ENGINE,引擎的接口函数实际上就是调用CSP接口来实现的。

主要代码在engine/E_capi.c里面,调试一下应该是可以用的。


2.创建自己新的引擎,模仿已有的引擎实现那些基本接口,主要包括engine_st结构体内的init、finish、destory、load_privkey、load_ssl_client_cert、

XXX_meth回调函数指针,那么剩下的工作只是实现这些个接口,至于你想要使用何种api来操作usbkey设备,就十分自由了。


如何调用你的engine?

可以参考源码中的s_client.c中的代码

如有兴趣的朋友,可以一起讨论讨论