2 个不稳定版本
0.2.0 | 2022 年 5 月 2 日 |
---|---|
0.1.0 | 2022 年 4 月 1 日 |
#2111 in 加密学
用于 msf-webrtc
165KB
4K SLoC
安全实时传输协议
根据 RFC 5764 和 RFC 3711 定义的 DTLS-SRTP 实现。
lib.rs
:
此包实现了根据 RFC 5764 定义的 DTLS-SRTP。RFC 建立在 RFC 3711 (SRTP) 之上
- RFC 3711 (SRTP)
- RFC 4347 (DTLS)
- RFC 8122 (SDP 中的 TLS)
使用示例
use openssl::{pkey::PKey, rsa::Rsa};
// a UDP stream + sink
let stream = ...;
// peer certificate fingerprint from SDP
let cert_fingerprint = "...";
// peer setup attribute from SDP
let setup = "...";
let connect = match setup {
"active" | "actpass" => true,
"passive" => false,
_ => panic!("unsupported setup"),
};
// generate a private key (can be application-wide)
let rsa = Rsa::generate(2048)?;
let key = PKey::from_rsa(rsa)?;
let context = SrtpContext::self_signed(&key)?;
let stream = if connect {
context.connect_muxed(stream, cert_fingerprint).await?
} else {
context.accept_muxed(stream, cert_fingerprint).await?
};
依赖项
~7.5MB
~133K SLoC