Така и така сме тръгнали да пращаме пакети напред-назад, защо и да не ги криптираме, да сме сигурни, че ако някой по средата ги прихване, няма да разбере за какво си говорим. Разбира се, трябва да използваме супер-сигурен алгоритъм, така че ще XOR-нем всеки байт с някакво число (note: това е шега, не "криптирайте" неща с XOR-ване).
Криптирането работи така:
Имаме някакъв slice от байтове ("payload").
Имаме 32-битов шифър ("cypher").
Разбиваме 32-битовото число на 4 байта, big endian.
Вземаме първите 4 байта на payload-a.
XOR-ваме байтовете на шифъра с тези на payload-а, един по един
Вземаме току-що криптираните 4 байта (резултата от криптирането) и използваме тях за нов шифър
И така докрай
Ако в който и да е момент няма 4 байта в остатъка от payload-а -- колкото има.
За декриптирането единствено ще ви кажем, че XOR-ването два пъти с едно и също число се неутрализира, тоест (a ^ b) ^ b ви дава просто a.
Compiling solution v0.1.0 (/tmp/d20191217-2173579-xaogs4/solution)
Finished dev [unoptimized + debuginfo] target(s) in 1.93s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-1ft4wft/solution)
Finished dev [unoptimized + debuginfo] target(s) in 1.94s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-wmvwr6/solution)
Finished dev [unoptimized + debuginfo] target(s) in 2.14s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-6aljaj/solution)
warning: value assigned to `b1` is never read
--> src/lib.rs:114:17
|
114 | b1=x1;
| ^^
|
= note: `#[warn(unused_assignments)]` on by default
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:119:16
|
119 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b2` is never read
--> src/lib.rs:123:16
|
123 | b2=x2;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `count` is never read
--> src/lib.rs:125:16
|
125 | count+=1;
| ^^^^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:129:16
|
129 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b2` is never read
--> src/lib.rs:133:16
|
133 | b2=x2;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b3` is never read
--> src/lib.rs:137:16
|
137 | b3=x3;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `count` is never read
--> src/lib.rs:139:16
|
139 | count+=1;
| ^^^^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:46:17
|
46 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:51:16
|
51 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b2` is never read
--> src/lib.rs:55:16
|
55 | b2=x2;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `count` is never read
--> src/lib.rs:57:16
|
57 | count+=1;
| ^^^^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:61:16
|
61 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b2` is never read
--> src/lib.rs:65:16
|
65 | b2=x2;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b3` is never read
--> src/lib.rs:69:16
|
69 | b3=x3;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `count` is never read
--> src/lib.rs:71:16
|
71 | count+=1;
| ^^^^^
|
= help: maybe it is overwritten before being read?
warning: variable does not need to be mutable
--> src/lib.rs:150:12
|
150 | let mut vec=toVector(&self.payload,cypher);
| ----^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
warning: function `toVector` should have a snake case name
--> src/lib.rs:78:8
|
78 | pub fn toVector(payload:&Vec<u8>,cypher: u32) -> Vec<u8> {
| ^^^^^^^^ help: convert the identifier to snake case: `to_vector`
|
= note: `#[warn(non_snake_case)]` on by default
warning: value assigned to `b1` is never read
--> src/lib.rs:114:17
|
114 | b1=x1;
| ^^
|
= note: `#[warn(unused_assignments)]` on by default
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:119:16
|
119 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b2` is never read
--> src/lib.rs:123:16
|
123 | b2=x2;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `count` is never read
--> src/lib.rs:125:16
|
125 | count+=1;
| ^^^^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:129:16
|
129 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b2` is never read
--> src/lib.rs:133:16
|
133 | b2=x2;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b3` is never read
--> src/lib.rs:137:16
|
137 | b3=x3;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `count` is never read
--> src/lib.rs:139:16
|
139 | count+=1;
| ^^^^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:46:17
|
46 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:51:16
|
51 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b2` is never read
--> src/lib.rs:55:16
|
55 | b2=x2;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `count` is never read
--> src/lib.rs:57:16
|
57 | count+=1;
| ^^^^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b1` is never read
--> src/lib.rs:61:16
|
61 | b1=x1;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b2` is never read
--> src/lib.rs:65:16
|
65 | b2=x2;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `b3` is never read
--> src/lib.rs:69:16
|
69 | b3=x3;
| ^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `count` is never read
--> src/lib.rs:71:16
|
71 | count+=1;
| ^^^^^
|
= help: maybe it is overwritten before being read?
warning: variable does not need to be mutable
--> src/lib.rs:150:12
|
150 | let mut vec=toVector(&self.payload,cypher);
| ----^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
warning: function `toVector` should have a snake case name
--> src/lib.rs:78:8
|
78 | pub fn toVector(payload:&Vec<u8>,cypher: u32) -> Vec<u8> {
| ^^^^^^^^ help: convert the identifier to snake case: `to_vector`
|
= note: `#[warn(non_snake_case)]` on by default
Finished dev [unoptimized + debuginfo] target(s) in 1.73s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-7mtap4/solution)
Finished dev [unoptimized + debuginfo] target(s) in 1.76s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-gzl0ac/solution)
Finished dev [unoptimized + debuginfo] target(s) in 2.41s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 1 test
test basic_test ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-hrhm42/solution)
warning: unused doc comment
--> src/lib.rs:24:13
|
24 | ///Малко е нелогично, но така взимаме последните байтове
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25 | let offset = ((self.payload.len() / 4) * 4);
| -------------------------------------------- rustdoc does not generate documentation for statements
|
= note: `#[warn(unused_doc_comments)]` on by default
warning: unused doc comment
--> src/lib.rs:50:13
|
50 | ///Малко е нелогично, но така взимаме последните байтове
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
51 | let offset = ((self.payload.len() / 4) * 4);
| -------------------------------------------- rustdoc does not generate documentation for statements
warning: unnecessary parentheses around assigned value
--> src/lib.rs:25:26
|
25 | let offset = ((self.payload.len() / 4) * 4);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
|
= note: `#[warn(unused_parens)]` on by default
warning: unnecessary parentheses around assigned value
--> src/lib.rs:51:26
|
51 | let offset = ((self.payload.len() / 4) * 4);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
warning: unused doc comment
--> src/lib.rs:24:13
|
24 | ///Малко е нелогично, но така взимаме последните байтове
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25 | let offset = ((self.payload.len() / 4) * 4);
| -------------------------------------------- rustdoc does not generate documentation for statements
|
= note: `#[warn(unused_doc_comments)]` on by default
warning: unused doc comment
--> src/lib.rs:50:13
|
50 | ///Малко е нелогично, но така взимаме последните байтове
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
51 | let offset = ((self.payload.len() / 4) * 4);
| -------------------------------------------- rustdoc does not generate documentation for statements
warning: unnecessary parentheses around assigned value
--> src/lib.rs:25:26
|
25 | let offset = ((self.payload.len() / 4) * 4);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
|
= note: `#[warn(unused_parens)]` on by default
warning: unnecessary parentheses around assigned value
--> src/lib.rs:51:26
|
51 | let offset = ((self.payload.len() / 4) * 4);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
Finished dev [unoptimized + debuginfo] target(s) in 2.17s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 4 tests
test tests::basic_test_1 ... ok
test tests::basic_test_2 ... ok
test tests::basic_test_3 ... ok
test tests::basic_test_4 ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-k2yzf7/solution)
Finished dev [unoptimized + debuginfo] target(s) in 2.04s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-eug13b/solution)
Finished dev [unoptimized + debuginfo] target(s) in 2.69s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 1 test
test tests::test_encrypt_decrypt ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-10y1va0/solution)
Finished dev [unoptimized + debuginfo] target(s) in 1.79s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-120lf7g/solution)
Finished dev [unoptimized + debuginfo] target(s) in 1.73s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-4vx477/solution)
Finished dev [unoptimized + debuginfo] target(s) in 1.74s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-1ndrl7w/solution)
Finished dev [unoptimized + debuginfo] target(s) in 1.67s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-hqsdbu/solution)
Finished dev [unoptimized + debuginfo] target(s) in 1.85s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-1qzso9a/solution)
Finished dev [unoptimized + debuginfo] target(s) in 2.01s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 1 test
test tests::it_works ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-12cmlq5/solution)
warning: variable `newCypher` should have a snake case name
--> src/lib.rs:12:17
|
12 | let mut newCypher = cypher.to_be_bytes();
| ^^^^^^^^^ help: convert the identifier to snake case: `new_cypher`
|
= note: `#[warn(non_snake_case)]` on by default
warning: variable `encryptedPacket` should have a snake case name
--> src/lib.rs:28:13
|
28 | let encryptedPacket = EncryptedPacket {
| ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `encrypted_packet`
warning: variable `newCypher` should have a snake case name
--> src/lib.rs:43:17
|
43 | let mut newCypher = cypher.to_be_bytes();
| ^^^^^^^^^ help: convert the identifier to snake case: `new_cypher`
warning: variable `newCypher` should have a snake case name
--> src/lib.rs:12:17
|
12 | let mut newCypher = cypher.to_be_bytes();
| ^^^^^^^^^ help: convert the identifier to snake case: `new_cypher`
|
= note: `#[warn(non_snake_case)]` on by default
warning: variable `encryptedPacket` should have a snake case name
--> src/lib.rs:28:13
|
28 | let encryptedPacket = EncryptedPacket {
| ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `encrypted_packet`
warning: variable `newCypher` should have a snake case name
--> src/lib.rs:43:17
|
43 | let mut newCypher = cypher.to_be_bytes();
| ^^^^^^^^^ help: convert the identifier to snake case: `new_cypher`
Finished dev [unoptimized + debuginfo] target(s) in 2.21s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Compiling solution v0.1.0 (/tmp/d20191217-2173579-mhsno4/solution)
Finished dev [unoptimized + debuginfo] target(s) in 1.77s
Running target/debug/deps/solution-28d77f5ef5bfec2e
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-b0ad3c2037f2314d
running 4 tests
test solution_test::test_exact_cyphers ... ok
test solution_test::test_full_roundtrip ... ok
test solution_test::test_roundtrip_with_specific_length ... ok
test solution_test::test_several_iterations ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out