1

我想编写一个使用 OpenSSL 的应用程序来利用它对 SCTP 的 DTLS 支持。我正在使用 Ubuntu 13.10。

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

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

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

setsockopt 遇到的错误是“Permission denied”。这是函数 BIO_new_dgram_sctp 中失败的代码(来自 bss_dgram.c)

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

1 回答 1

1

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

sysctl -w net.sctp.auth_enable = 1

net.sctp.auth_enable = 1 您可以通过添加来使设置永久化/etc/sysctl.conf

在此处查看 README 的底部: https ://github.com/jtt/sctp-tools

于 2014-04-15T03:54:42.793 回答