我想编写一个使用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);
答案 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