
DTLS 1.2 और 1.3 का मूल Go कार्यान्वयन, जिसमें ECDHE और PSK कुंजी विनिमय, AEAD सिफर, कनेक्शन ID, सत्र पुनःआरंभ, 0-RTT, और एन्क्रिप्टेड क्लाइंट हेलो शामिल हैं।
Go प्रोग्रामिंग भाषा में मूल DTLS 1.2 और DTLS 1.3 का कार्यान्वयन।
एक दीर्घकालिक लक्ष्य एक पेशेवर सुरक्षा समीक्षा है, और शायद stdlib में शामिल करना।
Pion DTLS, DTLS 1.2 और DTLS 1.3 का समर्थन करता है। हम योगदान और बग फ़िक्स का स्वागत करते हैं।
psk_ke और psk_dhe_ke के साथ DTLS 1.3 बाह्य PSK, SHA-256 और SHA-384 का समर्थन करता हैResume के साथ DTLS 1.2 और DTLS 1.3 कनेक्शन स्थिति का क्रमांकन और पुनर्स्थापनWithECH के साथ कॉन्फ़िगर किया गया (RFC 9849)Conn.AddPath, Path.Probe, और Path.Switch के साथ DTLS 1.3 स्थानीय पथ प्रोबिंग और माइग्रेशनConn.UpdateKeys के साथ DTLS 1.3 ट्रैफ़िक-कुंजी अपडेटलाइब्रेरी डिफ़ॉल्ट रूप से DTLS 1.2 और DTLS 1.3 सक्षम करती है, DTLS 1.3 को प्राथमिकता देती है।
किसी कनेक्शन को DTLS 1.2 तक सीमित करने के लिए WithMaxVersion(protocol.Version1_2) का उपयोग करें,
या DTLS 1.3 आवश्यक करने के लिए WithMinVersion(protocol.Version1_3) का उपयोग करें।
127.0.0.1:4444 पर सुनने वाले DTLS सर्वर के लिए
go run examples/listen/selfsign/main.go
DTLS क्लाइंट के लिए जो 127.0.0.1:4444 से कनेक्ट होता है
go run examples/dial/selfsign/main.go
Pion DTLS स्वयं से और OpenSSL से कनेक्ट हो सकता है।
// Generate a certificate
openssl ecparam -out key.pem -name prime256v1 -genkey
openssl req -new -sha256 -key key.pem -out server.csr
openssl x509 -req -sha256 -days 365 -in server.csr -signkey key.pem -out cert.pem
// Use with examples/dial/selfsign/main.go
openssl s_server -dtls1_2 -cert cert.pem -key key.pem -accept 4444
// Use with examples/listen/selfsign/main.go
openssl s_client -dtls1_2 -connect 127.0.0.1:4444 -debug -cert cert.pem -key key.pem
DTLS 1.3 वैकल्पिक 0-RTT अर्ली डेटा के साथ सत्र टिकट पुनःआरंभ का समर्थन करता है।
पुनःआरंभ केवल psk_dhe_ke (अस्थायी ECDHE के साथ PSK) की अनुमति देता है।
पुनःआरंभ उदाहरण एक प्रमाणपत्र-प्रमाणित
पहले कनेक्शन, एन्क्रिप्टेड सत्र संग्रहण, और पुनःआरंभ तथा वैकल्पिक अर्ली डेटा के साथ
बाद के कनेक्शनों को प्रदर्शित करता है। चलाने के निर्देशों और 0-RTT के लिए सत्र स्टोर की
एकल-उपयोग Claim आवश्यकता के लिए इसका README देखें।
State/Resume API नए हैंडशेक के बिना स्थापित DTLS 1.3
कनेक्शनों को पुनर्स्थापित करने का भी समर्थन करता है। देखें Resume।
DTLS 1.3 SHA-256 या SHA-384 का उपयोग करते हुए psk_ke (केवल-PSK) और psk_dhe_ke
(अस्थायी ECDHE के साथ PSK) के साथ बाहरी PSK का समर्थन करता है। क्लाइंट सर्वर द्वारा चयन के लिए
प्रति हैंडशेक कई PSK पहचान प्रस्तुत कर सकते हैं।
PSK उदाहरण डिफ़ॉल्ट रूप से DTLS 1.3 का उपयोग करते हैं, TLS_AES_128_GCM_SHA256 के साथ।
go run examples/listen/psk/main.go