第一范文网 - 专业文章范例文档资料分享平台

详细设计说明书示例

来源:用户分享 时间:2025/11/30 12:23:58 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

3.2.4.3.5 int deltdb(struct tdb *tdbp) 目的: 删除某个指定的tdb块。 参数:

tdbp ―― 要删除的tdb块

返回值: 0 ―― 成功,非0值―― 失败 算法描述:

判断tdbp的有效性,若无效,则返回失败信息; 计算hashval值;

根据hashval找到tdbp,并删除它,若失败,返回错误。 3.2.4.3.6 int deltdbchain(struct tdb *tdbp) 目的: 删除整个tdbp链。 参数:

tdbp ―― 要删除的tdb链

返回值: 0 ―― 成功,非0值―― 失败 算法描述:

判断tdbp是否有效,若无效,返回错误信息; 将tdbp移至最后的tdbp->tdb_onext; 删除所有的tdb块。

3.2.4.3.7 int ipsec_tdbwipe(struct tdb *tdbp) 目的: 将指定tdb块中的所有值清空。 参数:

tdbp ―― 要清空的tdb块

返回值: 0 ――成功,非0值―― 失败 算法描述: 将所有值置为NULL。

3.2.5安全策略数据库的管理模块

3.2.5.1概要说明 3.2.5.1.1功能

实现了对SPD数据库的初始化,添加、删除eroute。 3.2.5.1.2组成文件

radij.c, ipsec_radij.c

3.2.5.2变量说明 3.2.5.2.1 eroute struct eroute {

struct rjtentry er_rjt; struct sa_id er_said;

struct sockaddr_encap er_eaddr; struct sockaddr_encap er_emask; };

3.2.5.3函数说明

3.2.5.3.1 int ipsec_radijinit(void) 目的: 初始化radij树 参数:

返回值: 0 ―― 成功,非0值―― 失败 算法描述:调用rj_init()函数初始化。 3.2.5.3.2 int

ipsec_makeroute(struct

sockaddr_encap

*eaddr,

struct

sockaddr_encap *emask, struct sa_id said) 目的: 根据said值,生成新的eroute项。 参数:

eaddr ―― 封装的有效目的地址, emask ―― 封装的目的地址掩码, said ―― 传入的said值

返回值: 0 ――成功,非0值―― 失败 算法描述:

分配eroute空间――retrt,并先清0;

给retrt赋值:retrt->er_eaddr = *eaddr; retrt->er_emask = *emask; retrt->er_said = said;

给eroute表加锁;

调用函数rj_addroute(&(retrt->er_eaddr), &(retrt->er_emask), rnh,

retrt->er_rjt.rd_nodes),向eroute表中加入新生成的该项;

解锁,返回。

3.2.5.3.3 int ipsec_breakroute(struct sockaddr_encap *eaddr, struct

sockaddr_encap *emask) 目的: 删除指定的route。 参数:

eaddr ―― 有效目的地址,emask - 目的地址的掩码

返回值: 0 ―― 成功,非0值―― 失败 算法描述:

锁住eroute表;

调用函数rj_delete(eaddr, emask, rnh, &rn)删除这个指定route; 解锁,将该route项清0,调用系统调用kfree释放该空间。

3.2.5.3.4 struct eroute *ipsec_findroute(struct sockaddr_encap *eaddr) 目的: 接收并处理ipsec数据包。 参数:

eaddr ―― 要查找的route所具有的eaddr值

返回值: struct eroute ―― 找到的eroute值,NULL ―― 未找到 算法描述:

调用函数rj_match((caddr_t)eaddr, rnh),根据eaddr查找相应的eroute项;

返回找到的eroute项。

3.2.5.3.5 int ipsec_cleareroutes(void) 目的: 清空eroute表。 参数:

返回值: 0 ―― 成功,非0值―― 失败

算法描述:首先,锁住eroute表;调用函数radijcleartree()函数;解锁,返回。 3.2.5.3.6 int ipsec_radijcleanup(void) 目的: 参数:

返回值: 0 ―― 成功,非0值―― 失败

算法描述:首先,锁住eroute表;调用函数radijcleanup()函数;解锁,返回。

3.3密钥协商及管理模块

3.3.1 概要说明

3.3.1.1 功能

前面所描述的KLIPS模块,基本完成了对输入、输出数据包的加密、认证工作,但其前提是处理数据包的SA已经协商完毕,而这个SA的协商工作正是由IKE所负责的。在本程序中,Pluto模块是IKE的一个实现,它可以自动完成两个主机或网关间的安全联盟的协商工作。

搜索更多关于: 详细设计说明书示例 的文档
详细设计说明书示例.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6shk48919e0088t3wpsb_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top