gpt4 book ai didi

c++ - OpenSSL:将不安全的 BIO 提升为安全的 BIO

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:52 26 4
gpt4 key购买 nike

我正在尝试使用 OpenSSL 在 C++ 中创建一个简单的 FTP/FTPS 客户端实现。我已经设法使用 BIO API 与普通 FTP 一起工作。现在的问题是:一旦我有一个不安全的连接和 BIO 对象,我该如何升级连接以使用加密?连接在普通 FTP 中工作,直到 AUTH TLS 命令被发送,此时应该协商 TLS/SSL session 。有 BIO_new_ssl_connect 函数,但据我所知,它不是重用现有连接,而是创建一个新连接。

我正在学习本教程:https://www.ibm.com/developerworks/linux/library/l-openssl/index.html

最佳答案

检查 BIO_new_ssl_connect source code :

BIO *BIO_new_ssl_connect(SSL_CTX *ctx)
{
#ifndef OPENSSL_NO_SOCK
BIO *ret = NULL, *con = NULL, *ssl = NULL;

if ((con = BIO_new(BIO_s_connect())) == NULL)
return (NULL);
if ((ssl = BIO_new_ssl(ctx, 1)) == NULL)
goto err;
if ((ret = BIO_push(ssl, con)) == NULL)
goto err;
return (ret);
err:
BIO_free(con);
#endif
return (NULL);
}

同样的操作,只是跳过 BIO_s_connect

关于c++ - OpenSSL:将不安全的 BIO 提升为安全的 BIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49132242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com