From db8128879fbd197dd313ba78b689e706fe243509 Mon Sep 17 00:00:00 2001 From: xnorpx Date: Mon, 25 Nov 2024 22:51:07 -0800 Subject: [PATCH 1/2] Add crypto faq --- README.md | 29 +++++++++++++++++++++++++++++ src/lib.rs | 29 +++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/README.md b/README.md index 41dafd2b..50284dd7 100644 --- a/README.md +++ b/README.md @@ -524,6 +524,35 @@ don't let that stop you from building amazing applications! Yes! str0m excels as a server component with support for both RTP API and Sample API. You can easily build that recording server or SFU you dreamt of in Rust! +#### Crypto in str0m + +##### What cryptographic provider does str0m use? +- On non-Windows platforms, str0m uses OpenSSL as the primary cryptographic provider. +- On Windows, you can choose between: + - wincrypto: Uses Windows Crypto API (CNG). + - openssl: Uses OpenSSL as the cryptographic backend. + +##### What are the build options for OpenSSL? +When using OpenSSL, there are two alternatives: +- Vendored: Downloads and builds OpenSSL from source. This ensures compatibility and avoids +dependency on system-provided OpenSSL. +- Non-vendored: Relies on the OpenSSL library provided by the system. + +##### What's the recommended build configuration? +For the easiest build experience: +- On Windows: Use wincrypto. +- On Non-Windows Platforms: Use openssl and vendored. + +##### Does str0m support a pure Rust DTLS implementation? +Currently, str0m does not include a pure Rust implementation of DTLS. It relies on external +cryptographic libraries like OpenSSL for DTLS functionality. + +##### Can I contribute a DTLS implementation? +Yes! Contributions for a DTLS 1.2 implementation are welcome, but note: +- It should be synchronous. +- It should be implemented entirely in pure Rust. +If you're interested in contributing, feel free to discuss with the str0m maintainers before starting. + #### Can I deploy the chat example into production? While the chat example showcases how to use str0m's API, it's not intended for production use or diff --git a/src/lib.rs b/src/lib.rs index d43eb40d..7d3db132 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -535,6 +535,35 @@ //! Yes! str0m excels as a server component with support for both RTP API and Sample API. You can //! easily build that recording server or SFU you dreamt of in Rust! //! +//! ### Crypto in str0m +//! +//! #### What cryptographic provider does str0m use? +//! - On non-Windows platforms, str0m uses OpenSSL as the primary cryptographic provider. +//! - On Windows, you can choose between: +//! - wincrypto: Uses Windows Crypto API (CNG). +//! - openssl: Uses OpenSSL as the cryptographic backend. +//! +//! #### What are the build options for OpenSSL? +//! When using OpenSSL, there are two alternatives: +//! - Vendored: Downloads and builds OpenSSL from source. This ensures compatibility and avoids +//! dependency on system-provided OpenSSL. +//! - Non-vendored: Relies on the OpenSSL library provided by the system. +//! +//! #### What's the recommended build configuration? +//! For the easiest build experience: +//! - On Windows: Use wincrypto. +//! - On Non-Windows Platforms: Use openssl, vendored. +//! +//! #### Does str0m support a pure Rust DTLS implementation? +//! Currently, str0m does not include a pure Rust implementation of DTLS. It relies on external +//! cryptographic libraries like OpenSSL for DTLS functionality. +//! +//! #### Can I contribute a DTLS implementation? +//! Yes! Contributions for a DTLS 1.2 implementation are welcome, but note: +//! - It should be synchronous. +//! - It should be implemented entirely in pure Rust. +//! If you're interested in contributing, feel free to discuss with the str0m maintainers before starting. +//! //! ### Can I deploy the chat example into production? //! //! While the chat example showcases how to use str0m's API, it's not intended for production use or From d4a75571155801be2e4bb040205742b3f50e410e Mon Sep 17 00:00:00 2001 From: xnorpx Date: Mon, 25 Nov 2024 22:58:06 -0800 Subject: [PATCH 2/2] lint --- src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 7d3db132..46b7f8de 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -546,7 +546,7 @@ //! #### What are the build options for OpenSSL? //! When using OpenSSL, there are two alternatives: //! - Vendored: Downloads and builds OpenSSL from source. This ensures compatibility and avoids -//! dependency on system-provided OpenSSL. +//! dependency on system-provided OpenSSL. //! - Non-vendored: Relies on the OpenSSL library provided by the system. //! //! #### What's the recommended build configuration? @@ -562,6 +562,7 @@ //! Yes! Contributions for a DTLS 1.2 implementation are welcome, but note: //! - It should be synchronous. //! - It should be implemented entirely in pure Rust. +//! //! If you're interested in contributing, feel free to discuss with the str0m maintainers before starting. //! //! ### Can I deploy the chat example into production?