chore: update dependency
This commit is contained in:
49
CLAUDE.md
Normal file
49
CLAUDE.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
This is a Rust implementation of the Cryptopal challenges - a collection of cryptography exercises. The codebase follows a workspace structure with individual problem solutions and shared utilities.
|
||||
|
||||
## Workspace Structure
|
||||
|
||||
- **Root workspace**: Defined in `Cargo.toml` with `edition = "2024"`
|
||||
- **Individual problems**: Located in `problems/p1/`, `problems/p2/`, etc. Each has its own `Cargo.toml` and `src/main.rs`
|
||||
- **Common utilities**: Located in `common/` crate with shared cryptographic functions like `is_valid_english()` and `xor_with_key()`
|
||||
- **Documentation**: `cryptopal_book/` contains mdBook documentation for each challenge
|
||||
|
||||
## Key Commands
|
||||
|
||||
### Building and Running
|
||||
- `cargo build` - Build the entire workspace
|
||||
- `cargo run -p p1` - Run a specific problem (e.g., problem 1)
|
||||
- `cargo build -p p1` - Build a specific problem
|
||||
- `cargo test` - Run tests across the workspace
|
||||
- `cargo check` - Quick syntax check without full compilation
|
||||
|
||||
### Documentation
|
||||
- `mdbook build cryptopal_book/` - Build the challenge documentation
|
||||
- `mdbook serve cryptopal_book/` - Serve documentation locally
|
||||
|
||||
## Architecture Notes
|
||||
|
||||
- Each problem is isolated in its own binary crate under `problems/`
|
||||
- Common cryptographic utilities are shared via the `common` crate
|
||||
- Problems use dependencies like `hex`, `base64`, and `anyhow` for encoding/error handling
|
||||
- Code includes Chinese comments for educational purposes
|
||||
- The `common` crate provides utilities for English text validation and XOR operations
|
||||
|
||||
## Dependencies Pattern
|
||||
|
||||
Individual problems typically use:
|
||||
- `hex` for hexadecimal encoding/decoding
|
||||
- `base64` for Base64 operations
|
||||
- `anyhow` for error handling (via common crate)
|
||||
- Local `common` crate for shared utilities
|
||||
|
||||
## Development Notes
|
||||
|
||||
- Each challenge solution should be self-contained in its respective `problems/pN/` directory
|
||||
- Use the `common` crate for shared cryptographic functions
|
||||
- Follow the existing pattern of having a simple `main.rs` that demonstrates the solution
|
||||
Reference in New Issue
Block a user