Struct Scytale

Source
pub struct Scytale { /* private fields */ }
Expand description

A Scytale cipher.

This struct is created by the new() method. See its documentation for more.

Trait Implementations§

Source§

impl Cipher for Scytale

Source§

fn new(key: usize) -> Scytale

Initialize a Scytale cipher with a specific cylinder height.

§Panics
  • The key is 0.
Source§

fn encrypt(&self, message: &str) -> Result<String, &'static str>

Encrypt a message using a Scytale cipher.

Whilst all characters (including utf8) can be encrypted during the transposition process, it is important to note that the space character is also treated as padding. As such, whitespace characters at the end of a message are not preserved during the decryption process.

§Examples

Basic usage:

use cipher_crypt::{Cipher, Scytale};

let s = Scytale::new(6);
assert_eq!("Pegr lefoporaryr !", s.encrypt("Prepare for glory!").unwrap());
Source§

fn decrypt(&self, ciphertext: &str) -> Result<String, &'static str>

Decrypt a message using a Scytale cipher.

§Examples

Basic usage:

use cipher_crypt::{Cipher, Scytale};

let ct = Scytale::new(6);
assert_eq!("Prepare for glory!", ct.decrypt("Pegr lefoporaryr !").unwrap());
Source§

type Key = usize

Source§

type Algorithm = Scytale

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.