openssl - 为什么我在尝试 SSL_write 时收到 "error:1409F07F:SSL routines:SSL3_WRITE_PENDING: bad write retry"错误?

标签 openssl

尝试 SSL_write 时是否出现以下错误:

error:1409F07F:SSL routines:SSL3_WRITE_PENDING: bad write retry

最佳答案

原因非常简单:当 SSL_Write 返回 SSL_ERROR_WANT_WRITE 或 SSL_ERROR_WANT_READ 时,在满足条件(套接字上可进行读/写)后,您必须再次使用完全相同的参数重复调用 SSL_write。

使用不同的参数调用它,将产生 1409F07F 错误写入重试错误。

例如,当 ptr = 0xABCDEFGH、size = 4096 的 SSL_write(ssl, ptr, size) 因 SSL_ERROR_WANT_READ 或 SSL_ERROR_WANT_WRITE 失败时,重试 SSL_write 调用时,参数 ptr 和 size 应相同。如果 ptr 是指向与原始调用中相同内容的副本的另一个指针,则它不等效。

但是,可以通过设置 SSL_MODE_ENABLE_PARTIAL_WRITE 和/或 SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 来更改 SSL_write 的默认行为。

<小时/>

感谢@ShriramV 的澄清评论,并将其纳入答案

关于openssl - 为什么我在尝试 SSL_write 时收到 "error:1409F07F:SSL routines:SSL3_WRITE_PENDING: bad write retry"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2997218/

相关文章:

c - openSSL mac undefined symbol

objective-c - 如何将 RSA key 转换为 ssh-rsa

google-chrome - 如何从谷歌浏览器下的 "trusted root certification authorities"中删除 ssl 证书

java - 是什么导致 keytool 错误 "Failed to decrypt safe contents entry"?

java - 创建 keystore 并将证书附加到其中后, keystore 格式无效

ssl - 与为 Android 构建的 openssl 库链接时出现不满意的链接器错误

openssl - 在centos 7服务器上使用directadmin和letsencrypt安装HTTP版本2

c++ - 在 VS2010 上构建 openssl 时出错

ssl - 如何使用 OpenSSL 将我们创建的 session 加密算法添加到(主要)浏览器

计算OpenSSL加密和解密的缓冲区大小?