Skip to content
Snippets Groups Projects
Commit ddc9d7d8 authored by DevDoggo's avatar DevDoggo
Browse files

Remodeled to A3b, with static variables and unsafe code.

parent 86d566f1
No related branches found
No related tags found
No related merge requests found
Showing
with 46 additions and 56 deletions
//u8 plain[132];
static mut PLAIN: [u8; 132] = [0; 132];
//abc
//static ABC: [u32; 4] = [0x9fdd9158, 0x85715808, 0xac73323a, 0];
static CODED: [u32; 132] = [0x015e7a47, 0x2ef84ebb, 0x177a8db4, 0x1b722ff9, 0x5dc7cff0,
0x5dc9dea6, 0x1da0c15a, 0xe4c236a2, 0x3d16b0d0, 0x1f397842, 0xaae0d2ba, 0x11246674,
0x0845317f, 0xd5512dad, 0xb6184977, 0xd293a53e, 0x7d9c2716, 0xd917eae6, 0xd8852384,
0x286e46f9, 0xce566029, 0xcefe7daf, 0x62d726d4, 0x0dbaeb2d, 0x95f57c60, 0xed515141,
0x29b77d0f, 0x9f7b8d0c, 0x45a8395a, 0xfead2b72, 0x883d434c, 0xed8ddf60, 0xe51e65e4,
0x19bf6bb1, 0xfeb505ec, 0x662aa23c, 0xf6827cf8, 0xd1dc7a5c, 0x4fa5b066, 0x7ddd25a4,
0xa8ba8e8a, 0x72846227, 0xf8f636fb, 0x2b389a9c, 0xe4038bf6, 0x6e169877, 0xad028132,
0x84dbfe8c, 0x243762ff, 0x59c8f80c, 0xb6e0db4b, 0xedb8cab7, 0xcd4b39f6, 0xaf263741,
0x18d9965f, 0x1ab1f037, 0x5b458792, 0xc94d960d, 0xd45cedea, 0x2160aca3, 0x93c77766,
0x2d66e105, 0x9ff74d4f, 0x6dc22f21, 0x6b03d689, 0x5fc48de0, 0x1138f000, 0xccb58e57,
0xf9c8e200, 0x7ab26e3c, 0xc61dcb3e, 0x6aefccb0, 0x7a452f05, 0xa5cf0731, 0xa249383f,
0x628fe534, 0xcad81710, 0x7f616276, 0x3ce18308, 0xed4857ff, 0xd1e5b1d1, 0xc2e84dc2,
0xaa003742, 0xaf637488, 0x831afc48, 0x287a69a0, 0x6e04546e, 0x13dffa07, 0x3232fb10,
0xd69e2e09, 0x355d8dc7, 0xef902301, 0x9a89ac15, 0x967dc900, 0x08dc2b1c, 0x6b5be690,
0x894b0e02, 0xe26af9af, 0xa6fd3b23, 0xfcf213e5, 0x85217608, 0x7fd3be8b, 0xa2e757fb,
0x3717a341, 0x85ee426d, 0x394bb856, 0x12ac98c3, 0xec7d4ab5, 0x721b6989, 0x30e36360,
0xaa018403, 0x9ee61196, 0xa8697adc, 0x51e9d65a, 0x11023594, 0xc4c4b36b, 0xda80bf7a,
0xbd5a645e, 0x18cea918, 0xa723dda8, 0x0126c05e, 0x2962d48a, 0xd5f7d312, 0xb8947041,
0x7c1e2e9a, 0x945eeac3, 0x7110fb1c, 0xa7bc72cc, 0xdf47dfbb, 0x09a1c6c8, 0xc2e41061,
0];
static mut TEST_SEED: u32 = 0x3e944b9f;
static mut SEED: u32 = 0x0e0657c1;
fn codgen(seed: &mut u32) -> u32{ fn codgen(seed: &mut u32) -> u32{
let n: u32 = seed.count_zeros(); // built-in count zeroes in n let n: u32 = seed.count_zeros(); // built-in count zeroes in n
...@@ -23,7 +54,7 @@ fn decode(wordarr: &[u32], bytearr: &mut [u8], mut seed: &mut u32) -> u32{ ...@@ -23,7 +54,7 @@ fn decode(wordarr: &[u32], bytearr: &mut [u8], mut seed: &mut u32) -> u32{
} else { } else {
y = decode(&wordarr[1..], &mut bytearr[1..], &mut seed); y = decode(&wordarr[1..], &mut bytearr[1..], &mut seed);
m = x.wrapping_sub(y).wrapping_sub(wordarr[0]); m = x.wrapping_sub(y).wrapping_sub(wordarr[0]);
bytearr[0] = (((m & 0x000ff000) >> 13) as u8); //0b11111111000000000000; bytearr[0] = ((m & 0x000ff000) >> 13) as u8; //0b11111111000000000000;
r = (!codgen(&mut seed)).wrapping_add(1); r = (!codgen(&mut seed)).wrapping_add(1);
r = x.wrapping_add(y).wrapping_add(m).wrapping_add(r).wrapping_add(5); r = x.wrapping_add(y).wrapping_add(m).wrapping_add(r).wrapping_add(5);
} }
...@@ -34,53 +65,20 @@ fn decode(wordarr: &[u32], bytearr: &mut [u8], mut seed: &mut u32) -> u32{ ...@@ -34,53 +65,20 @@ fn decode(wordarr: &[u32], bytearr: &mut [u8], mut seed: &mut u32) -> u32{
fn main() { fn main() {
//u8 plain[132]; unsafe {
let mut plain: [u8; 132] = [0; 132]; let a: u32 = codgen(&mut TEST_SEED);
let b: u32 = codgen(&mut TEST_SEED);
//abc let c: u32 = codgen(&mut TEST_SEED);
let abc: [u32; 4] = [0x9fdd9158, 0x85715808, 0xac73323a, 0];
let coded: [u32; 132] = [0x015e7a47, 0x2ef84ebb, 0x177a8db4, 0x1b722ff9, 0x5dc7cff0,
0x5dc9dea6, 0x1da0c15a, 0xe4c236a2, 0x3d16b0d0, 0x1f397842, 0xaae0d2ba, 0x11246674,
0x0845317f, 0xd5512dad, 0xb6184977, 0xd293a53e, 0x7d9c2716, 0xd917eae6, 0xd8852384,
0x286e46f9, 0xce566029, 0xcefe7daf, 0x62d726d4, 0x0dbaeb2d, 0x95f57c60, 0xed515141,
0x29b77d0f, 0x9f7b8d0c, 0x45a8395a, 0xfead2b72, 0x883d434c, 0xed8ddf60, 0xe51e65e4,
0x19bf6bb1, 0xfeb505ec, 0x662aa23c, 0xf6827cf8, 0xd1dc7a5c, 0x4fa5b066, 0x7ddd25a4,
0xa8ba8e8a, 0x72846227, 0xf8f636fb, 0x2b389a9c, 0xe4038bf6, 0x6e169877, 0xad028132,
0x84dbfe8c, 0x243762ff, 0x59c8f80c, 0xb6e0db4b, 0xedb8cab7, 0xcd4b39f6, 0xaf263741,
0x18d9965f, 0x1ab1f037, 0x5b458792, 0xc94d960d, 0xd45cedea, 0x2160aca3, 0x93c77766,
0x2d66e105, 0x9ff74d4f, 0x6dc22f21, 0x6b03d689, 0x5fc48de0, 0x1138f000, 0xccb58e57,
0xf9c8e200, 0x7ab26e3c, 0xc61dcb3e, 0x6aefccb0, 0x7a452f05, 0xa5cf0731, 0xa249383f,
0x628fe534, 0xcad81710, 0x7f616276, 0x3ce18308, 0xed4857ff, 0xd1e5b1d1, 0xc2e84dc2,
0xaa003742, 0xaf637488, 0x831afc48, 0x287a69a0, 0x6e04546e, 0x13dffa07, 0x3232fb10,
0xd69e2e09, 0x355d8dc7, 0xef902301, 0x9a89ac15, 0x967dc900, 0x08dc2b1c, 0x6b5be690,
0x894b0e02, 0xe26af9af, 0xa6fd3b23, 0xfcf213e5, 0x85217608, 0x7fd3be8b, 0xa2e757fb,
0x3717a341, 0x85ee426d, 0x394bb856, 0x12ac98c3, 0xec7d4ab5, 0x721b6989, 0x30e36360,
0xaa018403, 0x9ee61196, 0xa8697adc, 0x51e9d65a, 0x11023594, 0xc4c4b36b, 0xda80bf7a,
0xbd5a645e, 0x18cea918, 0xa723dda8, 0x0126c05e, 0x2962d48a, 0xd5f7d312, 0xb8947041,
0x7c1e2e9a, 0x945eeac3, 0x7110fb1c, 0xa7bc72cc, 0xdf47dfbb, 0x09a1c6c8, 0xc2e41061,
0];
let mut test_seed: u32 = 0x3e944b9f;
let mut seed: u32 = 0x0e0657c1;
let a: u32 = codgen(&mut test_seed);
let b: u32 = codgen(&mut test_seed);
let c: u32 = codgen(&mut test_seed);
println!("\nOutput Codgen:"); println!("\nOutput Codgen:");
println!("{:x}", a); println!("{:x}", a);
println!("{:x}", b); println!("{:x}", b);
println!("{:x}", c); println!("{:x}", c);
}
let x: u32 = decode(&coded[..], &mut plain, &mut seed); unsafe {
decode(&CODED[..], &mut PLAIN[..], &mut SEED);
// for i in plain.iter() { println!("\nComplete Output: {}", std::str::from_utf8(&PLAIN[..]).unwrap());
// println!("i> {}", i); }
// if *i == 0 as u8 {
// break;
// }
// }
println!("\nComplete Output: {}", std::str::from_utf8(&plain[..]).unwrap());
} }
2b15e816d728436d
\ No newline at end of file
{"rustc":16349303590983159748,"features":"[]","target":9934871626033517107,"profile":3630501895014908796,"path":1036222786711178230,"deps":[],"local":[{"MtimeBased":[[1525451812,809747580],".fingerprint/decrypter-af97aa99087703bd/dep-bin-decrypter-af97aa99087703bd"]}],"rustflags":[],"edition":"Edition2015"}
\ No newline at end of file
File deleted
/home/rez/Studies/D7018e_Rust/rust_course/a3_decrypter/decrypter/target/debug/decrypter: /home/rez/Studies/D7018e_Rust/rust_course/a3_decrypter/decrypter/src/main.rs
File deleted
/home/rez/Studies/D7018e_Rust/rust_course/a3_decrypter/decrypter/target/debug/deps/decrypter-af97aa99087703bd: src/main.rs
/home/rez/Studies/D7018e_Rust/rust_course/a3_decrypter/decrypter/target/debug/deps/decrypter-af97aa99087703bd.d: src/main.rs
src/main.rs:
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment