Fix panic in SRTP crypto when the most significant byte of IV is 0
							parent
							
								
									a2cfaf2d3e
								
							
						
					
					
						commit
						ee8be93855
					
				|  | @ -471,7 +471,8 @@ where | ||||||
|         let iv = BigUint::from_bytes_be(&context.session_salt_key) << 16; |         let iv = BigUint::from_bytes_be(&context.session_salt_key) << 16; | ||||||
|         let iv = iv ^ (BigUint::from(ssrc) << 64); |         let iv = iv ^ (BigUint::from(ssrc) << 64); | ||||||
|         let iv = iv ^ (index.into() << 16); |         let iv = iv ^ (index.into() << 16); | ||||||
|         let iv = &iv.to_bytes_be()[0..context.session_encr_key.len()]; |         let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8)); | ||||||
|  |         let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1]; | ||||||
| 
 | 
 | ||||||
|         let mut ctr = crypto::aes::ctr( |         let mut ctr = crypto::aes::ctr( | ||||||
|             crypto::aes::KeySize::KeySize128, |             crypto::aes::KeySize::KeySize128, | ||||||
|  | @ -506,7 +507,8 @@ where | ||||||
|         let iv = BigUint::from_bytes_be(&context.session_salt_key) << 16; |         let iv = BigUint::from_bytes_be(&context.session_salt_key) << 16; | ||||||
|         let iv = iv ^ (BigUint::from(ssrc) << 64); |         let iv = iv ^ (BigUint::from(ssrc) << 64); | ||||||
|         let iv = iv ^ (index.into() << 16); |         let iv = iv ^ (index.into() << 16); | ||||||
|         let iv = &iv.to_bytes_be()[0..context.session_encr_key.len()]; |         let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8)); | ||||||
|  |         let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1]; | ||||||
| 
 | 
 | ||||||
|         let mut ctr = crypto::aes::ctr( |         let mut ctr = crypto::aes::ctr( | ||||||
|             crypto::aes::KeySize::KeySize128, |             crypto::aes::KeySize::KeySize128, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue