0

我正在使用 libcoap 库在 C 中通过 DTLS 编写一个小型 CoAP 客户端/服务器程序。使用 Wireshark 分析流量表明服务器选择了 TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256。

出于评估目的,我想更改密码套件。我该怎么做呢?似乎没有任何地方可以指定套件。另外,我用 OpenSSL 作为后端编译了 libcoap。

如果 libcoap 不支持这一点,有没有办法自己设置 DTLS 并使用 libcoap 来处理 CoAP 数据包?

4

1 回答 1

1

尝试在 dtls 上下文中配置密码套件。

文件:“coap_openssl.c”,(大约第 395 行,取决于您的版本),函数:“void *coap_dtls_new_context(struct coap_context_t *coap_context)”,

SSL_CTX_set_min_proto_version(context->dtls.ctx, DTLS1_2_VERSION);
SSL_CTX_set_app_data(context->dtls.ctx, &context->dtls);
SSL_CTX_set_read_ahead(context->dtls.ctx, 1);

SSL_CTX_set_cipher_list(context->dtls.ctx, "ECDHE-PSK-AES128-CBC-SHA256:PSK-AES128-CCM8:ECDHE-ECDSA-AES128-CCM8");

添加带有所需密码套件的“set_cipher_list”。

于 2019-05-21T20:11:46.097 回答