分享

SSL

 SmingPro 2017-02-15
  1. 格式  
  2.   
  3. LIBS:= CSSL   
  4. #include <openssl / ssl.h>  
  5. int  SSL_shutdown(SSL * ssl)  
  6.   
  7. ssl  
  8.     指向SSL_new调用返回的令牌的指针。  
  9.   
  10. 正常  回报  
  11.   
  12.     返回码0表示应用程序首先发出SSL_shutdown函数。继续发出SSL_shutdown函数,直到接收到  返回 代码1,这表示远程应用程序也已关闭。  
  13.     在SSL版本3和TLS版本1中,  返回 码1表示客户端和服务器应用程序都发出了SSL_shutdown函数。  
  14.     在SSL版本2中,   始终返回返回码1。  
  15.   
  16. 错误  返回  
  17.   
  18. 甲  返回 代码等于-1表示错误。发出SSL_get_error函数以获取有关错误的特定信息。  
  19. 编程注意事项  
  20.   
  21.     要使用  此 函数,必须在makefile中包含原型中指定的库。  
  22.     SSL_shutdown函数是关闭SSL会话的正常方式。在套接字关闭和关闭之前关闭SSL会话是一个好主意。  
  23.     将向远程合作伙伴发送警报,通知它连接正常结束。如果 希望以后在不同的SSLsocket上恢复会话,则需要正常关闭  。  
  24.     客户端和服务器应用程序都必须发出SSL_shutdown函数以正常关闭连接。  
  25.   
  26. ################################################## ##################################  
  27.   
  28. 描述  
  29.        SSL_shutdown()关闭活动的TLS / SSL连接。它发送  
  30.        “关闭通知”  关闭警报对等体。  
  31.   
  32. 笔记  
  33.        SSL_shutdown()尝试向  “关闭通知”  关闭警报发送  
  34.        对等体。无论操作是否成功,SSL_SENT_SHUTDOWN  
  35.        标志被设置,并且当前打开的会话被认为是关闭的和好的  
  36.        并将保存在会话缓存中  以供 进一步重用。  
  37.   
  38.        关闭过程由两个步骤组成:发送“关闭”  
  39.        通知“关闭警报并接收对等体的” 关闭通知“  
  40.        关机报警。根据TLS标准,这是可接受的  用于 一个  
  41.        应用程序仅发送其关闭警报,然后关闭底层 -  
  42.        连接而不等待  对 等体的响应(这种 方式  
  43.        可以节省资源,因为进程可以已经终止或服务  
  44.        另一个连接)。时,应使用的底层连接  为  
  45.        更多通信,完全关机程序(双向  
  46.        “关闭通知”  警报),以便对等体保持syn-  
  47.        慢慢地。  
  48.   
  49.        SSL_shutdown()支持单向和双向关闭由它的2  
  50.        步行为。  
  51.   
  52.        当应用程序是第一方发送  “关闭通知”  
  53.        alert,SSL_shutdown()只会发送警报并设置  
  54.        SSL_SENT_SHUTDOWN标志(以便会话被认为是好的,将会  
  55.        保存在缓存中)。SSL_shutdown()将  返回 0.如果unidi-  
  56.        方向关闭足够(底层连接应关闭  
  57.        反正),  这 第一次调用SSL_shutdown()就足够了。为了  
  58.        完成双向关机握手,SSL_shutdown()必须是  
  59.        再次叫。第二个电话会令SSL_shutdown()等待  了 的  
  60.        对等体的  “关闭通知”  关机警报。成功后,第二次调用  
  61.        SSL_shutdown()将  返回 1。  
  62.        如果对等体已经发送了  “关闭通知”  警报,并且已经  
  63.        在另一个函数(SSL_read(3))内隐式处理,  
  64.        SSL_RECEIVED_SHUTDOWN标志已设置。SSL_shutdown()将发送“close”  
  65.        通知“警报,设置SSL_SENT_SHUTDOWN标志并将立即  
  66.        返回 1.是否已经设置SSL_RECEIVED_SHUTDOWN  
  67.        检查  使用 的SSL_get_shutdown()(也参见SSL_set_shutdown(3)  
  68.        呼叫。  
  69.   
  70.        因此建议,检查  返回 SSL_shut-的价值  
  71.        down()并再次调用SSL_shutdown(),  如果 双向关闭  
  72.        尚未完成( 第一个调用的返回值为0)。作为关机  
  73.        不是在SSLv2协议中特殊处理,SSL_shutdown()会  
  74.        在第一次调用时成功。  
  75.   
  76.        SSL_shutdown()的行为另外取决于底层  
  77.        生物。  
  78.   
  79.        如果底层BIO正在阻塞,SSL_shutdown()将只  返回 一次  
  80.        握手步骤已完成或发生错误。  
  81.   
  82.        如果底层BIO是非阻塞的,SSL_shutdown()也将  返回  
  83.        当底层BIO不能满足SSL_shutdown()的需要时,  
  84.        要  继续 握手。在  这种情况下 调用SSL_get_error()   
  85.  SSL_shutdown()        的  返回值将产生SSL_ERROR_WANT_READ或  
  86.        SSL_ERROR_WANT_WRITE 然后呼叫进程必须重复该呼叫  
  87.        之后采取适当的行动来满足SSL_shutdown()的需要。  
  88.        操作取决于底层BIO。当  使用 非阻塞时  
  89.        插座,没有什么是必须要做的,但选择()可以用来检查  的  
  90.        所需条件。当  使用 缓冲BIO时,如BIO对,  
  91.        数据必须在能够之前写入或取出BIO  
  92.        要  继续。  
  93.   
  94.        SSL_shutdown()可以修改为只将连接设置为  “shutdown”  
  95.        状态,但实际上不发送  “关闭通知”  警报消息,请参阅  
  96.        SSL_CTX_set_quiet_shutdown(3)。当启用  “安静关闭”  时,  
  97.        SSL_shutdown()将始终成功并  返回 1。  
  98.   
  99. 返回值  
  100.        下面的  回报 可能会发生值:  
  101.   
  102.        1关闭已成功完成。该  “通知接近”  警戒  
  103.        并且接收到对等体的  “关闭通知”  警报。  
  104.   
  105.        0关闭尚未完成。呼叫SSL_shutdown()  为 第二  
  106.        时间,  如果 应执行双向关断。输出  
  107.        的SSL_get_error(3)可能会误导,作为一个错误  
  108.        SSL_ERROR_SYSCALL可能会被标记,即使没有发生错误。  
  109.   
  110.        -1关闭不成功,因为发生了致命错误  
  111.        无论是在协议级别还是发生连接故障。它  
  112.        也可能发生  ,如果 动作需要  持续 操作  的 非  
  113.        阻断BIO。调用SSL_get_error(3),  返回 值为ret  
  114.        找出原因。  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多