c++ - 使用 OpenSSL 的 SCTP 上的 DTLS

标签 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 遇到的错误是“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);

最佳答案

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

sysctl -w net.sctp.auth_enable = 1

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

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

关于c++ - 使用 OpenSSL 的 SCTP 上的 DTLS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20068706/

相关文章:

ruby - 使用 soap4r 时 sslv3 警告意外消息

sockets - 为什么 SCTP 不需要 TIME_WAIT 状态?

c++ - C++ 流的flush() 和FindFirstFileEx() 之间的竞争条件

c++ - 确定跨域 Active Directory 组成员身份

windows - ExternalProject_Add 何时构建?

c - HMAC-SHA1 与 OpenSSL/请求到 Amazon S3 签名

c++ - 如何将类中的静态名称引入作用域?

c++ - 为什么在 g++ 生成的汇编代码中这样定义构造函数/析构函数?

linux - SCTP 在 Linux 上是否像宣传的那样工作?