指定密码套件libcoap

时间:2019-05-14 09:34:42

标签: c openssl libcoap

我正在使用libcoap库在DTLS上编写一个小型的CoAP客户端/服务器程序。 使用Wireshark分析流量,可以发现服务器选择了TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256。

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

如果libcoap不支持此功能,是否可以自己设置DTLS并使用libcoap来处理CoAP数据包?

1 个答案:

答案 0 :(得分: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”以及所需的密码套件。