[NO LONGER UNDER DEVELOPMENT] A DTLS (Datagram Transport Layer Security) written in Pure Rust for embedded devices
Find a file
2025-10-13 08:56:56 +09:00
.cargo Initial commit 2025-10-13 08:56:56 +09:00
.idea Initial commit 2025-10-13 08:56:56 +09:00
src Initial commit 2025-10-13 08:56:56 +09:00
.gitignore Initial commit 2025-10-13 08:56:56 +09:00
build.rs Initial commit 2025-10-13 08:56:56 +09:00
Cargo.lock Initial commit 2025-10-13 08:56:56 +09:00
Cargo.toml Initial commit 2025-10-13 08:56:56 +09:00
LICENSE-MIT Initial commit 2025-10-13 08:56:56 +09:00
README.md Initial commit 2025-10-13 08:56:56 +09:00
rust-toolchain.toml Initial commit 2025-10-13 08:56:56 +09:00

Embedded-DTLS

A pure Rust implementation of the DTLS v1.2 protocol, designed for embedded (no_std) environments.

What is DTLS?

Datagram Transport Layer Security (DTLS) is a protocol that provides secure communication over datagram-based transport protocols such as UDP. It is based on the Transport Layer Security (TLS) protocol and is designed to prevent eavesdropping, tampering, and message forgery.

This library implements DTLS 1.2 (RFC 6347) and supports the following features:

Also, it is designed to be modular and extensible, allowing users to add support for additional cipher suites and features as needed.

Features

  • No standard library (no_std) support
  • Support for various cipher suites, including AES-GCM and ChaCha20-Poly1305
  • Support for PSK (Pre-Shared Key) and certificate-based authentication
  • Fragmentation and reassembly of DTLS records
  • Replay protection and anti-replay mechanisms
  • Configurable handshake and record layer parameters
  • Support for DTLS extensions, such as Server Name Indication (SNI) and Application Layer Protocol Negotiation (ALPN)
  • Integration with Rust's async ecosystem (using embassy library)
  • Comprehensive test suite and examples

Note

This library is still under development and may not be suitable for production use. Please use it with caution and thoroughly test it in your specific use case. Contributions and feedback are welcome!

License

This project is licensed under the MIT License. See the LICENSE file for details.