使用OpenSSL通过SCTP进行DTLS

时间:2013-11-19 10:13:54

标签: c++ openssl sctp dtls

我想编写一个使用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遇到的错误是“权限被拒绝”。以下是函数BIO_new_dgram_sctp(来自bss_dgram.c)失败的代码

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

1 个答案:

答案 0 :(得分: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