Chinaunix首页 | 论坛 | 博客
  • 博客访问: 871806
  • 博文数量: 87
  • 博客积分: 3324
  • 博客等级: 中校
  • 技术积分: 1003
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-17 11:37
文章分类

全部博文(87)

文章存档

2014年(3)

2013年(5)

2012年(21)

2011年(13)

2010年(7)

2009年(9)

2008年(4)

2007年(14)

2006年(11)

分类: C/C++

2006-05-17 12:01:29

在OpenSSL库函数中设置读取私钥的密码的函数总共涉及三个,即
void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
int pem_passwd_cb(char *buf, int size, int rwflag, void *userdata);
那么设置读取私钥密码有两种方法(假设ctx是已经初始化好的上下文变量)。
方法一:
使用函数SSL_CTX_set_default_passwd_cb_userdata直接设置,密码为123456,那么就
SSL_CTX_set_default_passwd_cb_userdata(ctx, (void*)"123456");
方法二:
先使用函数SSL_CTX_set_default_passwd_cb设置回调函数,假设回调函数为pem_passwd_cb,那么语句为
SSL_CTX_set_default_passwd_cb(ctx, pem_password_cb),请注意回调函数的名字可以变化,但是,格式必须与OpenSSL文档,即上面的定义一致。并且在调用函数SSL_CTX_set_default_passwd_cb之前申明或者定义你的回调函数。

回调函数的编写:
回调函数中要实现的功能就是把密码到buf这个字符缓冲区中(可使用strcpy等类似函数),并注意,密码的长度不要超过size。
说明:
(1) 当使用方法一时,其实在OpenSSL中还是调用了一个回调函数PEM_def_callback,该函数定义在OpenSSL源码中的文件pem_lib.c中。
(2) 回调函数实际上是由定义在OpenSSL源码目录中的pem_pkey.c文件定义的PEM_read_bio_PrivateKey函数调用的。
阅读(9196) | 评论(0) | 转发(1) |
1

上一篇:没有了

下一篇:ucspi-ssl的使用

给主人留下些什么吧!~~