1
- Simple Golang DTLS 1.2 implementation, this is a WIP. The intended user is pion-WebRTC, but I would love to see everyone use it.
1
+ <h1 align =" center " >
2
+ <br >
3
+ Pion DTLS
4
+ <br >
5
+ </h1 >
6
+ <h4 align =" center " >A Go implementation of DTLS</h4 >
7
+ <p align =" center " >
8
+ <a href =" https://sourcegraph.com/github.com/pions/dtls?badge " ><img src =" https://sourcegraph.com/github.com/pions/dtls/-/badge.svg " alt =" Sourcegraph Widget " ></a >
9
+ <a href =" http://gophers.slack.com/messages/pion " ><img src =" https://img.shields.io/badge/join-us%20on%20slack-gray.svg?longCache=true&logo=slack&colorB=brightgreen " alt =" Slack Widget " ></a >
10
+ <br >
11
+ <a href =" https://travis-ci.org/pions/dtls " ><img src =" https://travis-ci.org/pions/dtls.svg?branch=master " alt =" Build Status " ></a >
12
+ <a href =" https://godoc.org/github.com/pions/dtls " ><img src =" https://godoc.org/github.com/pions/dtls?status.svg " alt =" GoDoc " ></a >
13
+ <a href =" https://coveralls.io/github/pions/dtls " ><img src =" https://coveralls.io/repos/github/pions/dtls/badge.svg " alt =" Coverage Status " ></a >
14
+ <a href =" https://goreportcard.com/report/github.com/pions/dtls " ><img src =" https://goreportcard.com/badge/github.com/pions/dtls " alt =" Go Report Card " ></a >
15
+ <a href =" https://www.codacy.com/app/Sean-Der/dtls " ><img src =" https://api.codacy.com/project/badge/Grade/18f4aec384894e6aac0b94effe51961d " alt =" Codacy Badge " ></a >
16
+ <a href =" LICENSE " ><img src =" https://img.shields.io/badge/License-MIT-yellow.svg " alt =" License: MIT " ></a >
17
+ </p >
18
+ <br >
2
19
3
- My goal is to put this into x/net, but make it available here for now to iterate quickly
20
+ Go DTLS 1.2 implementation. The original user is pion-WebRTC, but we would love to see it work for everyone.
21
+
22
+ A long term goal is a professional security review, and maye inclusion in stdlib.
4
23
5
24
# Goals/Progress
6
25
This will only be targeting DTLS 1.2, and the most modern/common cipher suites.
7
- I am happy to accept contributions for older implementations, but won't be implementing it myself
26
+ We would love contributes that fall under the 'Planned Features' and fixing any bugs!
8
27
9
28
# Current features
10
- * DTLS 1.2 Client/Server (No DTLS 1.0)
11
- * Forward secrecy using ECDHE; with curve25519 (non-PFS will not be supported)
12
- * AES_128_GCM (More ciphers welcome!)
29
+ * DTLS 1.2 Client/Server
30
+ * Forward secrecy using ECDHE; with curve25519 and nistp256 (non-PFS will not be supported)
31
+ * AES_128_GCM
32
+ * Packet loss and re-ordering is handled during handshaking
33
+ * Key export (RFC5705)
34
+
35
+ # Planned Features
36
+ * Extended master secret support (RFC7627)
37
+ * Chacha20Poly1305
38
+ * AES_256_CBC
39
+
40
+ # Excluded Features
41
+ * DTLS 1.0
42
+ * Renegotiation
43
+ * Compression
44
+
45
+ # How to use
46
+ Pion DTLS can connect to itself and OpenSSL.
47
+
48
+ ## Pion DTLS
49
+ For a DTLS 1.2 Server that listens on 127.0.0.1:4444
50
+ ``` sh
51
+ go run cmd/listen/main.go
52
+ ```
53
+
54
+ For a DTLS 1.2 Client that connects to 127.0.0.1:4444
55
+ ``` sh
56
+ go run cmd/dial/main.go
57
+ ```
13
58
14
- # Testing it out
15
59
## OpenSSL
16
60
```
17
61
// Generate a certificate
@@ -26,13 +70,3 @@ I am happy to accept contributions for older implementations, but won't be imple
26
70
openssl s_client -dtls1_2 -connect 127.0.0.1:4444 -debug -cert cert.pem -key key.pem
27
71
```
28
72
29
- ## Golang
30
- For a DTLS 1.2 Server that listens on 127.0.0.1:4444
31
- ``` sh
32
- go run cmd/listen/main.go
33
- ```
34
-
35
- For a DTLS 1.2 Client that connects to 127.0.0.1:4444
36
- ``` sh
37
- go run cmd/dial/main.go
38
- ```
0 commit comments