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
- If a non-alphanumeric symbol is part of the key.
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()
);
type Key = (String, String, Option<char>)
type Algorithm = ADFGVX
Auto Trait Implementations§
impl Freeze for ADFGVX
impl RefUnwindSafe for ADFGVX
impl Send for ADFGVX
impl Sync for ADFGVX
impl Unpin for ADFGVX
impl UnwindSafe for ADFGVX
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more