new test
This commit is contained in:
34
src/tea3.rs
34
src/tea3.rs
@@ -66,6 +66,17 @@ impl Tea3 {
|
|||||||
r7
|
r7
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// outputs the next cipher byte
|
||||||
|
pub fn next_byte(&mut self) -> u8 {
|
||||||
|
let mut kout: u8;
|
||||||
|
for _i in 1..19 {
|
||||||
|
kout = self.step_key_register();
|
||||||
|
self.step_state_register(kout);
|
||||||
|
}
|
||||||
|
kout = self.step_key_register();
|
||||||
|
self.step_state_register(kout)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn key_register(&self) -> &[u8] {
|
pub fn key_register(&self) -> &[u8] {
|
||||||
&self.key_register
|
&self.key_register
|
||||||
}
|
}
|
||||||
@@ -318,4 +329,27 @@ mod tests {
|
|||||||
// 7=0, 8=0, 15=1, 16=1 -> 0011 = 0x3
|
// 7=0, 8=0, 15=1, 16=1 -> 0011 = 0x3
|
||||||
assert_eq!(out[4], 0b0011);
|
assert_eq!(out[4], 0b0011);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_state_register_step() {
|
||||||
|
let mut tea3 = Tea3::new(vec![0; 10], vec![1, 2, 3, 4, 5, 6, 7, 8]);
|
||||||
|
|
||||||
|
let kout = 0xAA;
|
||||||
|
|
||||||
|
let r7_before = tea3.state_register()[7];
|
||||||
|
|
||||||
|
let out = tea3.step_state_register(kout);
|
||||||
|
|
||||||
|
assert_eq!(out, r7_before);
|
||||||
|
|
||||||
|
let s = tea3.state_register();
|
||||||
|
|
||||||
|
assert_eq!(s[1], 1);
|
||||||
|
assert_eq!(s[2], 2);
|
||||||
|
assert_eq!(s[3], 3);
|
||||||
|
assert_eq!(s[4], 4);
|
||||||
|
|
||||||
|
assert_ne!(s[0], 1);
|
||||||
|
assert_ne!(s[5], 5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user