
服务器端主要流程为:
1. 加载SSL库
SSL_load_error_strings()
SSLeay_add_ssl_algorithms()
2. 加载CA证书和私钥文件
SSL_CTX* ctx = SSL_CTX_new(SSLv23_server_method())
SSL_CTX_use_certificate_file(ctx, CA_CERT, SSL_FILETYPE_PEM)
SSL_CTX_set_default_passwd_cb_userdata(ctx, PASSWORD)
SSL_CTX_use_PrivateKey_file(ctx, PRVTKEY, SSL_FILETYPE_PEM)
SSL_CTX_check_private_key(ctx)
3. 建立TCP连接并监听
略
4. 接收客户端请求并建立SSL连接
SSL*ssl = SSL_new(ctx)
SSL_set_fd(ssl, fd_accept)
SSL_accept(ssl)
5. 获取客户端证书信息
SSL_get_peer_certificate(ssl)
X509_NAME_oneline(X509_get_subject_name(cli_cert), NULL, 0)
X509_NAME_oneline(X509_get_issuer_name(cli_cert), NULL, 0)
X509_free(cli_cert)
6. 接收和发送数据
SSL_write
SSL_read
7. 释放套接字和SSL
SSL_CTX_free(ctx)
SSL_free(ssl)
客户端主要流程:
1. 加载SSL库
SSL_load_error_strings()
SSLeay_add_ssl_algorithms()
2. 如果需要验证服务器端的信息的话步骤同服务器的步骤2一样
3. 创建套接字连接到服务器
4. 创建SSL连接
SSL_CTX* ctx = SSL_CTX_new(SSLv23_client_method())
5. 基于套接字建立SSL连接
SSL* ssl = SSL_new(ctx)
SSL_set_fd(ssl, fd_connect)
SSL_connect(ssl)
6. 收发数据
SSL_write
SSL_read
7. 释放连接和SSL
SSL_CTX_free(ctx)
SSL_free(ssl)
windows api是基于WINDOWS *** 作系统框架下做应用软件的一种函数调用方式,也就是说你只能看到它的函数名和参数,但是看不到函数内部的程序。你根据MSDN上的描述去调用相应功能的API函数来完成你的相关应用函数。当然,在使用VC++时有比调用API更方便的方法,那就是使用相关的类。具体的方式,楼上给出了一个最好的学习方案:孙鑫VC++视频和书,只要有一定的C语言基础就能够理解如何进行应用软件的编写。视频和书在网上都能够下的到。当然,你说的再学校学习的那些C语言基础是非常有用的,当你进行深入的编程时就能够体会的到,我们经常戏称谭浩强为强哥,就是因为即使是编程老手,有的时候都不得不去翻阅一下强哥的书,里面的内容虽然平实,但却非常基础和关键!欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)