#enigma #decryption #encryption

bin+lib enigma_machine

This crate is Enigma Machine corresponding to various character strings

3 releases

Uses old Rust 2015

0.1.2 May 21, 2017
0.1.1 May 21, 2017
0.1.0 May 20, 2017

#6 in #enigma

Download history 47/week @ 2024-02-26 54/week @ 2024-04-01

54 downloads per month

MIT license

14KB
298 lines

Enigma Machine

MIT licensed crates.io

This crate is Enigma Machine corresponding to various character strings.

Dependencies

Insert to Cargo.toml of your project.

[dependencies]
enigma_machine = "0.1.0"

or

 cargo add encrypter

Usage

import

extern crate enigma_machine;

use enigma_machine::{ Enigma, Router, Reflector, Plugboard, SubstitutionTable };
use enigma_machine::{ SUBSTITUTION_TABLE1, SUBSTITUTION_TABLE2, SUBSTITUTION_TABLE3, REFLECTOR, PLUGBOARD };

setup enigma

let mut enimga = Enigma::new(
    vec![
        Router::new(SubstitutionTable::new(SUBSTITUTION_TABLE1.to_vec())),
        Router::new(SubstitutionTable::new(SUBSTITUTION_TABLE2.to_vec())),
        Router::new(SubstitutionTable::new(SUBSTITUTION_TABLE3.to_vec())),
    ],
    Plugboard::new(SubstitutionTable::new(PLUGBOARD.to_vec())),
    Reflector::new(SubstitutionTable::new(REFLECTOR.to_vec()))
);

set routers position.

let positions = "ABC";
enigma.set_positions(positions);

encrypt and decrypt.

let encrypted = enigma.encrypt(&string);
let decrypted = enigma.decrypt(&encrypted);

License

MIT

Dependencies

~390KB