[][src]Crate ciphers

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 Definitions

CipherResult

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