npm.io
0.0.6 • Published 5 years ago

rainy-dtls

Licence
MIT
Version
0.0.6
Deps
7
Size
154 kB
Vulns
26
Weekly
0
Stars
1

Example

  import { DtlsServer, DtlsClient, createUdpTransport } from "../../src";
  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