Crate ciphers

Source
Expand description

§Ciphers

Ciphers is a Rust library that provides implementations of many different classical ciphers.

§1. Supported Ciphers

There are currently 16 different supported ciphers.

TranspositionMonoalphabeticPolyalphabeticPolygraphicOther
Rail-fenceSimple SubstitutionVigenerePlayfairADFGX
Columnar TranspositionCaesarBeaufortFour-SquareADFGVX
AffineAutokey
Polybius SquareRunning Key
AtbashPorta

§2. Installation

Simply put the following in your Cargo.toml.

[dependencies]
ciphers = "0.1.0"

§3. Example Usage

E.g. using the Vigenere cipher.

use ciphers::{Cipher, Vigenere};
 
fn main() {
    let vigenere = Vigenere::new("examplekey");
 
    // encipher
    let ctext = vigenere.encipher("someexampletexthere").unwrap();
    println!("ciphertext: {}", ctext);
 
    // decipher
    let ptext = vigenere.decipher(&ctext).unwrap();
    println!("plaintext:  {}", ptext);
}

§4. To be Implemented

There are currently 6 different ciphers to be implemented.

TranspositionMonoalphabeticPolyalphabeticPolygraphicOther
Rot13GronsfeldHillBifid
Trifid
Straddle Checkerboard

Structs§

ADFGVX
An ADFGVX cipher implementation.
ADFGX
An ADFGX cipher implementation.
Affine
An Affine cipher implementation.
Atbash
An Atbash cipher implementation.
Autokey
An Autokey cipher implementation.
Beaufort
A Beaufort cipher implementation.
Caesar
A Caesar cipher implementation.
ColumnarTransposition
A Columnar Transposition cipher implementation.
FourSquare
A Four-Square cipher implementation.
Playfair
A Playfair cipher implementation
PolybiusSquare
A Polybius Square cipher implementation.
Porta
A Porta cipher implementation.
RailFence
A Rail-fence cipher implementation.
RunningKey
A Running Key cipher implementation.
Substitution
A Simple Substitution cipher implementation.
Vigenere
A Vigenere cipher implementation.

Enums§

CipherInputError
Errors that can result when giving a cipher method bad input.

Traits§

Cipher
Defines the implementation for cipher functionality.

Type Aliases§

CipherResult
A Result alias where the Err case is ciphers::CipherInputError.