Struct cipher_crypt::adfgvx::ADFGVX
source · pub struct ADFGVX { /* private fields */ }
Expand description
This struct is created by the new()
method. See its documentation for more.
Trait Implementations§
source§impl Cipher for ADFGVX
impl Cipher for ADFGVX
source§fn new(key: (String, String, Option<char>)) -> ADFGVX
fn new(key: (String, String, Option<char>)) -> ADFGVX
Initialise a ADFGVX cipher.
The key
tuple maps to the following (String, String, Option<char>) = (polybius_key, columnar_key, null_char)
. Where …
- The
polybius_key
is used to init a polybius cipher. See it’s documentation for more information. - The
columnar_key
is used to init a columnar transposition cipher. See it’s documentation for more information. - The
null_char
is an optional character that will be used to pad uneven messages during the columnar transposition stage. See thecolumnar_transposition
documentation for more information.
Panics
- (see the documentation for Polybius and ColumnarTransposition)
source§fn encrypt(&self, message: &str) -> Result<String, &'static str>
fn encrypt(&self, message: &str) -> Result<String, &'static str>
Encrypt a message using a ADFGVX cipher.
Examples
Basic usage:
use cipher_crypt::{Cipher, ADFGVX};
let polybius_key = String::from("ph0qg64mea1yl2nofdxkr3cvs5zw7bj9uti8");
let columnar_key = String::from("GERMAN");
let null_char = None;
let a = ADFGVX::new((
polybius_key,
columnar_key,
null_char
));
let cipher_text = concat!(
"gfxffgxgDFAXDAVGDgxvadaaxxXFDDFGGGFdfaxdavgdVDAGFAXVVxfdd",
"fgggfVVVAGFFAvvvagffaGXVADAAXXvdagfaxvvGFXFFGXG"
);
assert_eq!(
cipher_text,
a.encrypt("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
.unwrap()
);
source§fn decrypt(&self, ciphertext: &str) -> Result<String, &'static str>
fn decrypt(&self, ciphertext: &str) -> Result<String, &'static str>
Decrypt a message using a ADFGVX cipher.
Examples
Basic usage:
use cipher_crypt::{Cipher, ADFGVX};
let polybius_key = String::from("ph0qg64mea1yl2nofdxkr3cvs5zw7bj9uti8");
let columnar_key = String::from("GERMAN");
let null_char = None;
let a = ADFGVX::new((
polybius_key,
columnar_key,
null_char
));
let cipher_text = concat!(
"gfxffgxgDFAXDAVGD gxvadaaxxXFDDFGGGFdfaxdav",
"gdVDAGFAXVVxfddfgggfVVVAGFFA vvvagffaGXVADAAXX vdagfaxvvGFXFFGXG "
);
assert_eq!(
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
a.decrypt(cipher_text).unwrap()
);