srtp: compare key length to srtp policy key length

simplifying the code and comparing against the value libsrtp expects
and increase verbosity of error logging related to key length mismatches.

BUG=None

Change-Id: Icc0d0121d2983e23c95b0f972a5f6cac1d158fd7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213146
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33685}
This commit is contained in:
Philipp Hancke
2021-04-08 16:02:40 +02:00
committed by Commit Bot
parent 5691053612
commit 100321969c
2 changed files with 9 additions and 23 deletions

View File

@ -278,23 +278,9 @@ bool SrtpSession::DoSetKey(int type,
return false;
}
int expected_key_len;
int expected_salt_len;
if (!rtc::GetSrtpKeyAndSaltLengths(cs, &expected_key_len,
&expected_salt_len)) {
// This should never happen.
RTC_NOTREACHED();
RTC_LOG(LS_WARNING)
<< "Failed to " << (session_ ? "update" : "create")
<< " SRTP session: unsupported cipher_suite without length information"
<< cs;
return false;
}
if (!key ||
len != static_cast<size_t>(expected_key_len + expected_salt_len)) {
RTC_LOG(LS_WARNING) << "Failed to " << (session_ ? "update" : "create")
<< " SRTP session: invalid key";
if (!key || len != static_cast<size_t>(policy.rtp.cipher_key_len)) {
RTC_LOG(LS_ERROR) << "Failed to " << (session_ ? "update" : "create")
<< " SRTP session: invalid key";
return false;
}