Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18602
  • 博文数量: 7
  • 博客积分: 427
  • 博客等级: 下士
  • 技术积分: 81
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-18 14:09
文章分类
文章存档

2008年(7)

我的朋友
最近访客

分类: 系统运维

2008-07-08 11:49:46

main.c:main() -> session.c:session() -> admin_handler()/isakmp.c:isakmp_handler()#/pfkey_handler() -> isakmp.c:isakmp_main()

->isakmp.c:ph1_main() -> isakmp_inf.c:isakmp_info_send_n1() -> isakmp_inf.c:isakmp_info_send_common() ->

oakley.c:oakley_do_encrypt() -> isakmp_inf.c:isakmp_send()


oakley.c:oakley_do_encrypt() -> algorithm.c:alg_oakley_encdef_encrypt() -> algorithm.c:alg_oakley_encdef()取得加密算法f ->

crypto_openssl.c:f->encrypt()以blowfish为例则调用eay_bf_encrypt() -> evp_crypt() -> 调用openssl 库函数实现加密

具体的加密算法和函数定义在全局struct enc_algorithm oakley_encdef[]中:
struct enc_algorithm {
    char *name;
    int type;
    int doi;
    int blocklen;
    vchar_t *(*encrypt) __P((vchar_t *, vchar_t *, vchar_t *));
    vchar_t *(*decrypt) __P((vchar_t *, vchar_t *, vchar_t *));
    int (*weakkey) __P((vchar_t *));
    int (*keylen) __P((int));
};
通过比较doi找到具体的算法函数例如:eay_bf_encrypt
pfkey_handler()处理与kernel 的交互信息
阅读(845) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~