OpenSSL回调函数
作者:Rainbow(不经历风雨,怎么见彩虹)
创作时间:2002-10-1
/********************************************************************************************************************
声明:本文档用于学习与研究可以自由转载,无论以何种形式发布都必须保留完整的版权声明,商业用途不得转载.本人能力有限,如有问题欢迎交流与指正。
网站:
论坛:/forum/forum.html
邮件:rainbow_zrh@sina.com webmaster@infosecurity.org.cn
*********************************************************************************************************************/
1、ssl_callback_TmpRSA
2、ssl_callback_TmpDH
3、ssl_callback_SSLVerify
【功能】: 证书验证时的回调函数,用于验证对方身份。
【过程描述】:从X509_STORE_CTX中取得SSL对象,再从SSL对象中取出conn_rec和ap_ctx.。从ap_ctx中取出request_rec。取出主体与签发者,ssl_callback_SSLVerify_CRL验证CRL,检查证书验证的深度。
4、ssl_callback_SSLVerify_CRL
【功能】:验证CRL。
【过程描述】:如果pRevocationStore变量为空,没有设置CRL,返回。验证CRL的签名,能过比较X509_CRL_get_nextUpdate返回结果与当前时间,验证是否过期,返回<0的值表示过期。检查序列号是否在CRL中,如果在说明被吊销,否则有效。
5、ssl_callback_NewSessionCacheEntry
【功能】:这个钩子的作用是将会话ID缓存到磁盘,使用它在其它的应用服务器进程间可以共享。当一个会话ID被加到OpenSSL内部的会话缓存中时,被OpenSSL调用。
【过程描述】:通过OpenSSL的context取得得Apache的context,向会话ID中设置超时时间,设置过期时间,
6、ssl_callback_GetSessionCacheEntry
【功能】:当到OpenSSL内部的会话缓存中查找一个会话ID并且没有找到时,被OpenSSL调用。
【过程描述】:通过OpenSSL的context取得得Apache的context,由ssl_scache_retrieve从进程间的会话缓存中取得会话ID。
7、ssl_callback_DelSessionCacheEntry
【功能】:当到OpenSSL内部的会话缓存中删除一个会话ID时,被OpenSSL调用。
【过程描述】:通过OpenSSL的context取得得Apache的context,由ssl_scache_remove函数从缓存中将会话ID删除。
8、ssl_callback_LogTracingState
【功能】:当进行SSL握手中进行记录层处理时,被OpenSSL调用。
【过程描述】:通过OpenSSL的context取得得Apache的context,建立不同的跟踪信息。