enigma_machine 0.1.0

This crate is Enigma Machine corresponding to various character strings.
Documentation

Enigma Machine

Dependencies

Insert to Cargo.toml of your project.

[dependencies]
enigma_machine = "*"

or

❯ cargo add encrypter

Usage

import

extern crate enigma_machine;

use enigma_machine::enigma::{ Enigma, Router, Reflector, Plugboard, SubstitutionTable };
use enigma_machine::enigma::{ 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