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]

[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 the columnar_transposition documentation for more information.

[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()
);

[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()
);

Auto Trait Implementations

impl Send for ADFGVX

impl Sync for ADFGVX