npm.io
0.5.7 • Published 1 year ago

werift-dtls

Licence
MIT
Version
0.5.7
Deps
8
Size
907 kB
Vulns
0
Weekly
0
Stars
1

DTLS v1.2 server/client Implementation for TypeScript

Example

import { DtlsServer, DtlsClient, createUdpTransport } from "werift-dtls";
import { readFileSync } from "fs";
import { createSocket } from "dgram";

const port = 55557;

const socket = createSocket("udp4");
socket.bind(port);

const server = new DtlsServer({
  cert: readFileSync("assets/cert.pem").toString(),
  key: readFileSync("assets/key.pem").toString(),
  transport: createUdpTransport(socket),
});

const client = new DtlsClient({
  transport: createUdpTransport(createSocket("udp4"), {
    address: "127.0.0.1",
    port,
  }),
});

server.onData = (data) => {
  console.log(data.toString());
};

client.onConnect = () => {
  client.send(Buffer.from("ping"));
};
client.onData = (data) => {
  console.log(data.toString());
};

client.connect();

reference

create key & cert

openssl genrsa 2048 > rsa.key
openssl pkcs8 -in rsa.key -topk8 -out key.pem -nocrypt
openssl req -new -key key.pem > cert.csr
openssl x509 -req -days 3650 -signkey key.pem -in cert.csr -out  cert.pem