pub struct FourSquare { /* private fields */ }
Expand description
A Four-Square cipher implementation.
Implementations§
Source§impl FourSquare
impl FourSquare
Sourcepub fn new(key1: &str, key2: &str, alphabet: &str, pad: char) -> Self
pub fn new(key1: &str, key2: &str, alphabet: &str, pad: char) -> Self
Takes the two keys for the Four-Square cipher and returns a corresponding FourSquare struct.
§Panics
- If
alphabet
is not 25 chars in length. - If
alphabet
is not valid ascii. - If
alphabet
contains repeated chars. - If
key1
is not 25 chars in length. - If
key1
contains repeated chars. - If any of the chars in
key1
are not contained inalphabet
. - If
key2
is not 25 chars in length. - If
key2
contains repeated chars. - If any of the chars in
key2
are not contained inalphabet
. - If
pad
is not contained inalphabet
.
Trait Implementations§
Source§impl Cipher for FourSquare
impl Cipher for FourSquare
Source§fn encipher(&self, ptext: &str) -> CipherResult
fn encipher(&self, ptext: &str) -> CipherResult
Enciphers the given plaintext (a str reference) using the Four-Square
cipher and returns the ciphertext as a CipherResult
.
§Example
use ciphers::{Cipher, FourSquare};
let four_square = FourSquare::new(
"ZGPTFOIHMUWDRCNYKEQAXVSBL",
"MFNBDCRHSAXYOGVITUEWLQZKP",
"ABCDEFGHIKLMNOPQRSTUVWXYZ",
'X',
);
let ctext = four_square.encipher("ATTACKATDAWN");
assert_eq!(ctext.unwrap(), "TIYBFHTIZBSY");
Source§fn decipher(&self, ctext: &str) -> CipherResult
fn decipher(&self, ctext: &str) -> CipherResult
Deciphers the given ciphertext (a str reference) using the Four-Square
cipher and returns the plaintext as a CipherResult
.
§Example
use ciphers::{Cipher, FourSquare};
let four_square = FourSquare::new(
"ZGPTFOIHMUWDRCNYKEQAXVSBL",
"MFNBDCRHSAXYOGVITUEWLQZKP",
"ABCDEFGHIKLMNOPQRSTUVWXYZ",
'X',
);
let ptext = four_square.decipher("TIYBFHTIZBSY");
assert_eq!(ptext.unwrap(), "ATTACKATDAWN");
Auto Trait Implementations§
impl Freeze for FourSquare
impl RefUnwindSafe for FourSquare
impl Send for FourSquare
impl Sync for FourSquare
impl Unpin for FourSquare
impl UnwindSafe for FourSquare
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