2025-11-26 06:42:29 +02:00
2025-11-26 06:42:29 +02:00
2025-11-26 17:33:10 +02:00
2025-11-26 05:49:24 +02:00
2025-11-26 06:00:17 +02:00
2025-11-26 06:42:29 +02:00
2025-11-26 05:49:24 +02:00
2025-11-26 05:49:24 +02:00
2025-10-13 12:51:43 +03:00
2025-10-13 12:52:21 +03:00
2025-11-26 06:26:04 +02:00

Cipher Workshop

This is a Rust workspace containing implementations of various cipher algorithms, along with a command-line interface (CLI) and a web interface to interact with them.

Features

  • AES and DES Implementations: The workspace includes implementations of the Advanced Encryption Standard (AES) and the Data Encryption Standard (DES).
  • Command-Line Interface: A CLI to encrypt and decrypt messages using the supported ciphers.
  • Web Interface: A web-based interface to perform cipher operations in the browser.

Workspace Structure

The cipher-workshop workspace is organized into the following crates:

  • aes: Implementation of the AES cipher.
  • cipher-core: Core traits and types for ciphers.
  • cipher-factory: A factory for creating cipher contexts.
  • cli: A command-line interface for the ciphers.
  • des: Implementation of the DES cipher.
  • web: A web interface for the ciphers, built with Leptos.

Getting Started

Prerequisites

Building the Project

Clone the repository and build the workspace:

git clone https://github.com/kristofers-solo/cipher-workshop.git
cd cipher-workshop
cargo build

Usage

CLI

The CLI allows you to encrypt and decrypt messages using the supported ciphers.

AES

To encrypt a message with AES:

cargo run --bin cli -- encrypt -a aes -k <KEY> <MESSAGE>

To decrypt a message with AES:

cargo run --bin cli -- decrypt -a aes -k <KEY> <MESSAGE> 

DES

To encrypt a message with DES:

cargo run --bin cli -- encrypt -a des -k <KEY> <MESSAGE>

To decrypt a message with DES:

cargo run --bin cli -- decrypt -a des -k <KEY> <MESSAGE>

Web Interface

The web interface provides a user-friendly way to interact with the ciphers, available at: https://cryptography.kristofers.xyz/

To run the web interface, navigate to the web directory and use trunk:

cd web
trunk serve --open

License

This project is licensed under either of the Apache License, Version 2.0 or the MIT license, at your option.

Description
No description provided
Readme 481 KiB
Languages
Rust 90%
SCSS 7.9%
TypeScript 1.3%
Dockerfile 0.8%