Укажите набор шифров libcoap
Я пишу небольшую клиент-серверную программу CoAP, через DTLS, на C, используя библиотеку libcoap. Анализ трафика с помощью Wireshark показывает, что сервер выбирает TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256.
Я хочу изменить набор шифров, в целях оценки. Как мне это сделать? Кажется, нигде нет возможности указать набор. Кроме того, я скомпилировал libcoap с OpenSSL в качестве бэкэнда.
Если libcoap не поддерживает это, есть ли способ настроить DTLS самостоятельно и использовать libcoap для обработки пакетов CoAP?
1 ответ
Попробуйте настроить наборы шифров в контексте dtls.
file: "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" с необходимыми комплектами шифров.