Struct cipher_crypt::adfgvx::ADFGVX
[−]
[src]
pub struct ADFGVX { /* fields omitted */ }
This struct is created by the new()
method. See its documentation for more.
Trait Implementations
impl Cipher for ADFGVX
[src]
type Key = (String, String, Option<char>)
type Algorithm = ADFGVX
fn new(key: (String, String, Option<char>)) -> Result<ADFGVX, &'static str>
[src]
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.
fn encrypt(&self, message: &str) -> Result<String, &'static str>
[src]
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 )).unwrap(); let cipher_text = concat!( "gfxffgxgDFAXDAVGDgxvadaaxxXFDDFGGGFdfaxdavgdVDAGFAXVVxfdd", "fgggfVVVAGFFAvvvagffaGXVADAAXXvdagfaxvvGFXFFGXG" ); assert_eq!( cipher_text, a.encrypt("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") .unwrap() );
fn decrypt(&self, ciphertext: &str) -> Result<String, &'static str>
[src]
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 )).unwrap(); let cipher_text = concat!( "gfxffgxgDFAXDAVGD gxvadaaxxXFDDFGGGFdfaxdav", "gdVDAGFAXVVxfddfgggfVVVAGFFA vvvagffaGXVADAAXX vdagfaxvvGFXFFGXG " ); assert_eq!( "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", a.decrypt(cipher_text).unwrap() );