linux openssl 编程

OpenSSL是为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

服务器端OpenSSL编程流程:

1.SSL库初始化:SSL_library_init();

2.加载SSL算法:OpenSSL_add_all_altorithms();

3.加载错误信息:SSL_load_error_strings();

4.创建会话环境:SSL_CTX_new();

5.加载用户证书:SSL_CTX_use_certificate_file();

6.加载用户私钥:SSL_CTX_PrivateKey_file();

7.检查用户证书私钥是否匹配:SSL_CTX_check_private_key();

8.创建socket();

9.bind(sockfd);

10.listen(sockfd,maxconnect);

11.accept(sockfd,...);

12.创建新的ssl:SSL_new();

13.accetpfd

14.建立ssl连接:ssl_accept

15.SSL_read();

16.SSL_write();

17.SSL_shutdown(),SSL_free(),SSL_CTX_free();

客户端OpenSSL编程流程:

1.SSL库初始化:SSL_library_init();

2.加载SSL算法:OpenSSL_add_all_altorithms();

3.加载错误信息:SSL_load_error_strings();

4.创建会话环境:SSL_CTX_new();

5.加载用户证书:SSL_CTX_use_certificate_file();

6.加载用户私钥:SSL_CTX_PrivateKey_file();

7.检查用户证书私钥是否匹配:SSL_CTX_check_private_key();

8.创建socket();

9.connect();

10.创建新的ssl:SSL_new();

11.加入ssl,SSL_set_fd

12.创建SSL_connect();

13.SSL_write();

14.SSL_read();

15.SSL_shutdown(),SSL_free(),SSL_CTX_free();

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值