@nodertc/dtls

数据报传输层安全性(DTLS)客户端。「Datagram Transport Layer Security (DTLS) client.」

Github星跟踪图

@nodertc/dtls

使用纯 js 实现的基于数据报传输层安全协议版本 1.2 进行安全的 UDP 通信。 遵循RFC6347RFC7627

特性

  • 没有本地依赖!
  • 现代安全密码(默认情况下)
  • 进出分片/进出重传
  • 合并传出的握手

用法

npm i @nodertc/dtls
const dtls = require('@nodertc/dtls');
const socket = dtls.connect({
  type: 'udp4',
  remotePort: 4444,
  remoteAddress: '127.0.0.1',
});
socket.on('error', err => {
  console.error(err);
});
socket.on('data', data => {
  console.log('got message "%s"', data.toString('ascii'));
  socket.close();
});
socket.once('connect', () => {
  socket.write('Hello from Node.js!');
});

支持的密码:

  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (nodejs v11.2+ only)
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (nodejs v11.2+ only)
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 (nodejs v11.2+ only)
  • TLS_PSK_WITH_AES_128_GCM_SHA256
  • TLS_PSK_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256

API

请参考自述文件。

如何调试?

启动 dtls 服务器:

docker run -it --name dtlsd --rm -e <span class="pl-s"><span class="pl-pds">"</span>GNUTLS_DEBUG_LEVEL=2<span class="pl-pds">"</span></span> -e <span class="pl-s"><span class="pl-pds">"</span>PRIORITY=NORMAL:+AEAD:+ECDHE-RSA:+VERS-DTLS1.2<span class="pl-pds">"</span></span> -e <span class="pl-s"><span class="pl-pds">"</span>KEYFILE=key-rsa.pem<span class="pl-pds">"</span></span> -e <span class="pl-s"><span class="pl-pds">"</span>CERTFILE=cert-rsa.pem<span class="pl-pds">"</span></span> -p 4444:4444/udp nodertc/dtls-server:1

启动缺省客户端

npm start

许可

MIT, 2018 - 2019 © Dmitriy Tsvettsikh


(The first version translated by vz on 2020.08.01)

主要指标

概览
名称与所有者nodertc/dtls
主编程语言JavaScript
编程语言JavaScript (语言数: 1)
平台Linux, Mac, Windows
许可证MIT License
所有者活动
创建于2018-03-09 13:18:28
推送于2022-01-11 23:25:06
最后一次提交2019-11-02 00:41:10
发布数8
最新版本名称v0.6.0 (发布于 2019-05-05 13:54:25)
第一版名称prototype (发布于 )
用户参与
星数83
关注者数9
派生数11
提交数113
已启用问题?
问题数41
打开的问题数9
拉请求数0
打开的拉请求数1
关闭的拉请求数0
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?