将X.509证书存储在c字符串中,并将其加载到SSL_CTX对象中?

将X.509证书存储在c字符串中,并将其加载到SSL_CTX对象中?,c,openssl,C,Openssl,我对openssl还很陌生。到目前为止,我已经阅读了IBM和HP提供的教程,并获得了一些关于如何使用openssl API的实践 我的项目是使用一个加载了数字证书的USB安全内存令牌,通过客户端浏览器上的ActiveX控件验证客户端的身份。现在的问题是,供应商提供的令牌库只支持从令牌读取和向令牌写入字符串。但是,我只知道如何使用SSL\u CTX\u load\u verify\u locations()或SSL\u CTX\u use\u certificate\u file()函数从文件加载

我对openssl还很陌生。到目前为止,我已经阅读了IBM和HP提供的教程,并获得了一些关于如何使用openssl API的实践

我的项目是使用一个加载了数字证书的USB安全内存令牌,通过客户端浏览器上的ActiveX控件验证客户端的身份。现在的问题是,供应商提供的令牌库只支持从令牌读取和向令牌写入字符串。但是,我只知道如何使用
SSL\u CTX\u load\u verify\u locations()
SSL\u CTX\u use\u certificate\u file()函数从文件加载证书

我唯一能想到的就是将
BEGIN X509 CERTIFICATE
END X509 CERTIFICATE
之间的大量加密内容写入令牌,并将其作为字符串读取。现在我真的需要一些帮助来将这个字符串加载到openssl中的
SSL\u CTX
object
CTX

顺便问一句,在
开始X509证书
结束X509证书
之间的长内容是否包含所谓的公钥和除私钥之外的其他信息(如过期日期)?如果我错了,请纠正我:)

任何帮助都将不胜感激


Z.Zen

如果您可以读写任意二进制blob到令牌,那么您只需以ASN1格式存储证书和私钥,然后用
SSL\u CTX\u use\u certificate\u ASN1()
SSL\u CTX\u use\u PrivateKey\u ASN1()
加载它们。请注意,您需要同时执行这两项操作,因为证书不存储私钥;它必须单独存储。

我推荐一本关于openssl的好书,叫做《openssl的网络安全》。有很多有用的信息OpenSSL@pcent谢谢我只是扫描了这本书的目录,它看起来比openssl网站上的在线文档更有条理。