Skip to content

Commit d957afb

Browse files
Rust wrapper: test invalid kdr_index parameters
1 parent 4fb4b3c commit d957afb

1 file changed

Lines changed: 62 additions & 0 deletions

File tree

wrapper/rust/wolfssl-wolfcrypt/tests/test_kdf.rs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ use wolfssl_wolfcrypt::hmac::HMAC;
77
use wolfssl_wolfcrypt::kdf::*;
88
#[cfg(all(hmac, kdf_tls13))]
99
use wolfssl_wolfcrypt::sha::SHA256;
10+
#[cfg(kdf_srtp)]
11+
use wolfssl_wolfcrypt::sys;
1012

1113
#[test]
1214
#[cfg(all(hmac, kdf_pbkdf2))]
@@ -251,6 +253,66 @@ fn test_srtcp_kdf() {
251253
assert_eq!(key_s, expected_ks);
252254
}
253255

256+
#[test]
257+
#[cfg(kdf_srtp)]
258+
fn test_srtp_kdf_invalid_kdr_index() {
259+
common::setup();
260+
261+
let key = [
262+
0xc4u8, 0x80, 0x9f, 0x6d, 0x36, 0x98, 0x88, 0x72,
263+
0x8e, 0x26, 0xad, 0xb5, 0x32, 0x12, 0x98, 0x90
264+
];
265+
let salt = [
266+
0x0eu8, 0x23, 0x00, 0x6c, 0x6c, 0x04, 0x4f, 0x56,
267+
0x62, 0x40, 0x0e, 0x9d, 0x1b, 0xd6
268+
];
269+
let index = [
270+
0x48u8, 0x71, 0x65, 0x64, 0x9c, 0xca
271+
];
272+
let max_valid = (index.len() * 8) as i32;
273+
let mut key_e = [0u8; 16];
274+
let mut key_a = [0u8; 20];
275+
let mut key_s = [0u8; 14];
276+
277+
let rc = srtp_kdf(&key, &salt, -2, &index, &mut key_e, &mut key_a, &mut key_s)
278+
.expect_err("srtp_kdf() should fail for kdr_index = -2");
279+
assert_eq!(rc, sys::wolfCrypt_ErrorCodes_BAD_FUNC_ARG);
280+
281+
let rc = srtp_kdf(&key, &salt, max_valid + 1, &index, &mut key_e, &mut key_a, &mut key_s)
282+
.expect_err("srtp_kdf() should fail for too-large kdr_index");
283+
assert_eq!(rc, sys::wolfCrypt_ErrorCodes_BAD_FUNC_ARG);
284+
}
285+
286+
#[test]
287+
#[cfg(kdf_srtp)]
288+
fn test_srtcp_kdf_invalid_kdr_index() {
289+
common::setup();
290+
291+
let key = [
292+
0xc4u8, 0x80, 0x9f, 0x6d, 0x36, 0x98, 0x88, 0x72,
293+
0x8e, 0x26, 0xad, 0xb5, 0x32, 0x12, 0x98, 0x90
294+
];
295+
let salt = [
296+
0x0eu8, 0x23, 0x00, 0x6c, 0x6c, 0x04, 0x4f, 0x56,
297+
0x62, 0x40, 0x0e, 0x9d, 0x1b, 0xd6
298+
];
299+
let index = [
300+
0x56u8, 0xf3, 0xf1, 0x97
301+
];
302+
let max_valid = (index.len() * 8) as i32;
303+
let mut key_e = [0u8; 16];
304+
let mut key_a = [0u8; 20];
305+
let mut key_s = [0u8; 14];
306+
307+
let rc = srtcp_kdf(&key, &salt, -2, &index, &mut key_e, &mut key_a, &mut key_s)
308+
.expect_err("srtcp_kdf() should fail for kdr_index = -2");
309+
assert_eq!(rc, sys::wolfCrypt_ErrorCodes_BAD_FUNC_ARG);
310+
311+
let rc = srtcp_kdf(&key, &salt, max_valid + 1, &index, &mut key_e, &mut key_a, &mut key_s)
312+
.expect_err("srtcp_kdf() should fail for too-large kdr_index");
313+
assert_eq!(rc, sys::wolfCrypt_ErrorCodes_BAD_FUNC_ARG);
314+
}
315+
254316
#[test]
255317
#[cfg(kdf_srtp)]
256318
fn test_srtp_kdr_to_idx() {

0 commit comments

Comments
 (0)