gpt4 book ai didi

c - OpenSSL SSL_write 抛出写入失败

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:09 25 4
gpt4 key购买 nike

我正在尝试使用 OpenSSL (1.1.1)。但在写作过程中,我得到了写作失败(从 ERR_print_errors 获得)。握手成功(返回1)。我也在尝试将其限制为 TLS 1.3

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <openssl/bio.h>
#include <openssl/err.h>
#include <openssl/ssl.h>


int main(int argc, char **argv) {
char * request = argv[1]
int request_len = strlen(request)

SSL_CTX *ctx = SSL_CTX_new(TLS_client_method());
if (ctx == NULL) {ERR_print_errors_fp(stderr);}
long options = SSL_OP_NO_SSLv2 |
SSL_OP_NO_SSLv3 |
SSL_OP_NO_TLSv1 |
SSL_OP_NO_TLSv1_2;
SSL_CTX_set_options(ctx, options);
SSL *ssl = SSL_new(ctx);
if (ssl == NULL) {ERR_print_errors_fp(stderr);}

BIO * bio = BIO_new_connect("google.com:443")
if (bio == NULL) {ERR_print_errors_fp(stderr);}
SSL_set_bio(ssl, bio, bio);
if (SSL_connect(ssl) != 1) {ERR_print_errors_fp(stderr);}
if (SSL_write(ssl, request, request_len) !=1) {ERR_print_errors_fp(stderr);}
}

最佳答案

SSL_write 输出未正确检查。它输出发送数据的正长度。

应该是

if (SSL_write(ssl, request, request_len) < 1) {ERR_print_errors_fp(stderr);}

关于c - OpenSSL SSL_write 抛出写入失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58432624/

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