使用OpenSSL的SCTP上的DTLS

DTLS over SCTP using OpenSSL

本文关键字:上的 DTLS SCTP OpenSSL 使用      更新时间:2023-10-16

我想编写一个使用OpenSSL的应用程序,以利用它对SCTP的DTLS支持。我使用的是Ubuntu 13.10。

我已经下载并成功编译了LKSCTP 1.0.15和OpenSSL 1.0.1e。我用编译了OpenSSL/配置sctp。

我可以编译上提供的样本http://sctp.fh-muenster.de/,但是,当我尝试执行其中任何一个时,它们都会在下面的断言中失败。错误消息为:

bss_dgram.c(897): OpenSSL internal error, assertion failed: ret > 0

setsockopt遇到的错误是"权限被拒绝"。以下是函数BIO_new_dgram_sctp(来自bss_dgram.c)中失败的代码

ret = setsockopt(fd, IPPROTO_SCTP, SCTP_AUTH_CHUNK, &auth, sizeof(struct sctp_authchunk));
OPENSSL_assert(ret >= 0);

您需要在sysctl中启用AUTH块。显然,它们在Linux中默认关闭:

sysctl -w net.sctp.auth_enable = 1

通过将net.sctp.auth_enable = 1 添加到/etc/sysctl.conf,可以使设置永久化。

请在此处查看自述文件的底部:https://github.com/jtt/sctp-tools