srt-rs
srt-rs copied to clipboard
Implement key size mismatch
srt-rs
version: commit 1236c22
I have my listener setup like this:
let (_listener, mut receiver) = SrtListener::builder()
.encryption(KeySize::AES256.as_raw(), "mypass")
.bind(port)
.await?;
while let Some(request) = receiver.incoming().next().await {
let socket = match request.accept(None).await {
Ok(socket) => socket,
Err(err) => {
error!("SRT connection error: {}", err);
println!("{err:?}");
continue;
}
};
// ...
}
If I then use ffplay
to connect like this:
ffplay "srt://127.0.0.1:51379/?passphrase=wrongpass"
I get this in my console output:
thread 'tokio-runtime-worker' panicked at 'not implemented: Key size mismatch', C:\Users\lucas\.cargo\git\checkouts\srt-rs-5cd6a57c40b8e1b5\1236c22\srt-protocol\src\protocol\pending_connection\hsv5.rs:72:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
SRT connection error: oneshot canceled
Custom { kind: NotConnected, error: Canceled }
If I recall correctly, the server should tell the receiver its key size. Is this a bug or has that not been implemented yet?
I know it says not implemented
, but since "Encryption" has been marked as working in the README I thought I could use it.
Note:
Setting the key size manually in ffplay
does work (default 0):
ffplay "srt://127.0.0.1:51379/?passphrase=mypass&pbkeylen=32"
But if you then use an invalid password:
ffplay "srt://127.0.0.1:51379/?passphrase=wrongpass&pbkeylen=32"
You'll get this error in your console output:
SRT connection error: oneshot canceled
Custom { kind: NotConnected, error: Canceled }