# str0m-openssl

OpenSSL backend for [str0m](https://github.com/algesten/str0m).

## Usage

The primary way to use this backend is via the `openssl` feature flag in `str0m`:

```toml
[dependencies]
str0m = { version = "0.14", default-features = false, features = ["openssl"] }
```

### DTLS 1.3 Support

DTLS 1.3 support is present through the use of Dimpl. In order to enable this, you
instead should enabled the `openssl-dimpl` feature from str0m. This is currently kept
separate but may become the only implementation in the future.

```toml
[dependencies]
str0m = { version = "0.14", default-features = false, features = ["openssl-dimpl"] }
```

## Advanced: Direct usage

For advanced use cases, you can use this crate directly without enabling the feature flag:

```rust
use str0m::Rtc;
use std::sync::Arc;

// Set as process-wide default
str0m_openssl::default_provider().install_process_default();

// Or configure per-instance
let rtc = Rtc::builder()
    .set_crypto_provider(Arc::new(str0m_openssl::default_provider()))
    .build();
```
