Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Both are FOSS with independent governance (no Big Tech).
### Package Management

- **Primary**: Guix (guix.scm)
- **Fallback**: Nix (flake.nix)
- **Fallback**: Guix (flake.guix)
- **JS deps**: Deno (deno.json imports)

### Security Requirements
Expand Down
8 changes: 4 additions & 4 deletions .github/REPO_CONFIG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ The repository should have the following topics:
- `offline-first`

### Secondary (Recommended)
- `rescript`
- `affinescript`
- `password-cracking`
- `hash-cracking`
- `cryptography`
Expand All @@ -52,7 +52,7 @@ gh repo edit hyperpolymath/dicti0nary-attack \
--add-topic rust \
--add-topic wasm \
--add-topic offline-first \
--add-topic rescript \
--add-topic affinescript \
--add-topic password-cracking \
--add-topic cryptography \
--add-topic ctf-tools \
Expand All @@ -67,13 +67,13 @@ This repository follows the Hyperpolymath Language Policy:
|---------|----------|
| Chapel | Primary password generation/cracking |
| Rust | CLI implementation |
| ReScript | Web interface logic |
| AffineScript | Web interface logic |
| Nickel | Configuration |
| Bash | Scripts/automation |

| Banned | Replacement |
|--------|-------------|
| TypeScript | ReScript |
| TypeScript | AffineScript |
| Python | Chapel/Rust |
| Node.js | Deno |
| npm/bun | Deno |
Expand Down
20 changes: 10 additions & 10 deletions .machine_readable/contractiles/Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -212,19 +212,19 @@ nickel-check:
mustfile-check:
nickel typecheck Mustfile.epx

# === ReScript/Deno Commands ===
# === AffineScript/Deno Commands ===

# Build ReScript modules
rescript-build:
deno task build:rescript
# Build AffineScript modules
affinescript-build:
deno task build:affinescript

# Watch ReScript modules
rescript-watch:
deno task watch:rescript
# Watch AffineScript modules
affinescript-watch:
deno task watch:affinescript

# Clean ReScript build
rescript-clean:
deno task clean:rescript
# Clean AffineScript build
affinescript-clean:
deno task clean:affinescript

# === Policy Enforcement ===

Expand Down
4 changes: 2 additions & 2 deletions ABI-FFI-README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design:
┌─────────────────────────────────────────────┐
│ Any Language via C ABI │
│ - Rust, ReScript, Julia, Python, etc. │
│ - Rust, AffineScript, Julia, Python, etc. │
└─────────────────────────────────────────────┘
```

Expand Down Expand Up @@ -79,7 +79,7 @@ This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design:
└── bindings/ # Language-specific wrappers (optional)
├── rust/
├── rescript/
├── affinescript/
└── julia/
```

Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
git clone https://github.com/hyperpolymath/dicti0nary-attack.git
cd dicti0nary-attack

# Using Nix (recommended for reproducibility)
nix develop
# Using Guix (recommended for reproducibility)
guix develop

# Or using toolbox/distrobox
toolbox create dicti0nary-attack-dev
Expand Down Expand Up @@ -45,7 +45,7 @@ dicti0nary-attack/
├── MAINTAINERS.md
├── README.adoc
├── SECURITY.md
├── flake.nix # Nix flake (Perimeter 1)
├── flake.guix # Guix flake (Perimeter 1)
└── Justfile # Task runner (Perimeter 1)
```

Expand Down
16 changes: 8 additions & 8 deletions EXPLAINME.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -46,30 +46,30 @@ The Chapel hash cracker in link:src/crackers/HashCracker.chpl[`src/crackers/Hash
dispatches to the selected algorithm using Chapel's `coforall` for parallel
processing across cores. The Rust crate in `crates/crackers/` implements the
same algorithms using the `sha2`, `sha1`, and `blake2` crates. The
link:web/src/Hash.res[`web/src/Hash.res`] ReScript module handles hashing in
link:web/src/Hash.res[`web/src/Hash.res`] AffineScript module handles hashing in
the browser WASM context.

Caveat::
MD5 and SHA1 are included for legacy hash cracking in authorised security
assessments. They must not be used for any new security-relevant hashing;
SHA-256+ is required per the hyperpolymath security policy.

== "Chapel + Rust + ReScript polyglot architecture"
== "Chapel + Rust + AffineScript polyglot architecture"

[quote, README.adoc]
____
Architecture: Chapel (generators/crackers), Rust workspace crates (core
types), ReScript web interface, compiled to WASM.
types), AffineScript web interface, compiled to WASM.
____

How this is implemented::
The three-language split is enforced by the directory structure:
`src/generators/*.chpl` and `src/crackers/*.chpl` are Chapel (parallel HPC
computation), `crates/` is a Rust workspace (type definitions + WASM target),
and `web/src/*.res` is ReScript (browser UI, compiles to JavaScript via
`rescript.json`). The link:justfile[`justfile`] wires the build pipeline:
and `web/src/*.res` is AffineScript (browser UI, compiles to JavaScript via
`affinescript.json`). The link:justfile[`justfile`] wires the build pipeline:
`just build` compiles Chapel, `just build-wasm` compiles Rust to WASM,
`deno task build:rescript` compiles the web interface.
`deno task build:affinescript` compiles the web interface.

Caveat::
Chapel is not a standard hyperpolymath language (it was permitted for this
Expand All @@ -86,7 +86,7 @@ ____
How this is implemented::
The CLI in link:src/main.rs[`src/main.rs`] uses the Rust `clap` crate for
argument parsing and displays progress bars. The static web interface in
link:web/[`web/`] is a Deno-served ReScript application that loads WASM
link:web/[`web/`] is a Deno-served AffineScript application that loads WASM
modules from `web/static/wasm/`. Run via `just serve-static`.

Caveat::
Expand All @@ -109,7 +109,7 @@ cracking via WASM is CPU-bound and significantly slower than the native CLI.
| link:https://github.com/hyperpolymath/phantom-metal-taste[phantom-metal-taste]
(gap score computation WASM)

| ReScript web UI
| AffineScript web UI
| Browser interface for generators
| link:https://github.com/hyperpolymath/gossamer[gossamer],
link:https://github.com/hyperpolymath/blue-screen-of-app[blue-screen-of-app]
Expand Down
20 changes: 10 additions & 10 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -212,19 +212,19 @@ nickel-check:
mustfile-check:
nickel typecheck Mustfile.epx

# === ReScript/Deno Commands ===
# === AffineScript/Deno Commands ===

# Build ReScript modules
rescript-build:
deno task build:rescript
# Build AffineScript modules
affinescript-build:
deno task build:affinescript

# Watch ReScript modules
rescript-watch:
deno task watch:rescript
# Watch AffineScript modules
affinescript-watch:
deno task watch:affinescript

# Clean ReScript build
rescript-clean:
deno task clean:rescript
# Clean AffineScript build
affinescript-clean:
deno task clean:affinescript

# === Policy Enforcement ===

Expand Down
18 changes: 9 additions & 9 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Everyone knows that it's easy to crack a password if it appears in a dictionary.
image:https://img.shields.io/badge/License-MPL_2.0--1.0-blue.svg[License: MPL-2.0,link="https://github.com/hyperpolymath/palimpsest-license"]
link:https://img.shields.io/badge/Chapel-2.3+-purple.svg[![Chapel]](https://chapel-lang.org/)
link:https://img.shields.io/badge/Rust-2021-orange.svg[![Rust]](https://www.rust-lang.org/)
link:https://img.shields.io/badge/ReScript-11+-red.svg[![ReScript]](https://rescript-lang.org/)
link:https://img.shields.io/badge/AffineScript-11+-red.svg[![AffineScript]](https://affinescript-lang.org/)
link:https://img.shields.io/badge/RSR-Bronze%20(86%25[![RSR Compliance]-yellow.svg)](RSR_COMPLIANCE.md)
link:https://img.shields.io/badge/offline--first-100%25-green.svg[![Offline-First]](RSR_COMPLIANCE.md#5-offline-first--compliant)

Expand Down Expand Up @@ -240,14 +240,14 @@ dicti0nary-attack/
│ └── crackers/ # Rust cracking engine
├── web/ # Static web interface
│ ├── index.html # Main HTML
│ ├── src/ # ReScript source
│ ├── src/ # AffineScript source
│ │ ├── App.res # Application logic
│ │ ├── Generators.res # Password generators
│ │ ├── Hash.res # Hashing utilities
│ │ └── WasmLoader.res # WASM module loader
│ └── static/ # Static assets
│ ├── css/ # CSS-first styling
│ ├── js/ # Compiled ReScript output
│ ├── js/ # Compiled AffineScript output
│ └── wasm/ # Chapel-compiled WASM
├── config/ # Configuration files
│ ├── dicti0nary.ncl # Nickel configuration
Expand All @@ -258,7 +258,7 @@ dicti0nary-attack/
├── Justfile # Task automation
├── Cargo.toml # Rust workspace manifest
├── Chapel.toml # Chapel config
├── rescript.json # ReScript config
├── affinescript.json # AffineScript config
└── deno.json # Deno config
----

Expand Down Expand Up @@ -373,11 +373,11 @@ just init
# Install pre-commit hooks
just setup-hooks

# Build ReScript (web interface)
deno task build:rescript
# Build AffineScript (web interface)
deno task build:affinescript

# Watch mode for development
deno task watch:rescript
deno task watch:affinescript
----

=== Available just Commands
Expand Down Expand Up @@ -409,7 +409,7 @@ Contributions are welcome! Please ensure:
1. All tests pass: `just test` and `cargo test`
2. Code is formatted: `just format` and `cargo fmt`
3. No linting errors: `just lint` and `cargo clippy`
4. ReScript compiles: `deno task build:rescript`
4. AffineScript compiles: `deno task build:affinescript`
5. Documentation is updated

== 📄 License
Expand All @@ -419,7 +419,7 @@ This project is licensed under the GNU General Public License v3.0 - see the lin
== 🙏 Acknowledgments

- Inspired by the need for better password security testing tools
- Built with Chapel, Rust, ReScript, and Nickel
- Built with Chapel, Rust, AffineScript, and Nickel
- Powered by WASM for offline-first browser execution
- Thanks to the security research community

Expand Down
8 changes: 4 additions & 4 deletions RSR_OUTLINE.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ project/

=== Language Tiers

* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, ReScript
* **Tier 2** (Silver): Nickel, Racket, Guile Scheme, Nix
* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, AffineScript
* **Tier 2** (Silver): Nickel, Racket, Guile Scheme, Guix
* **Infrastructure**: Guix channels, derivations

=== Required Files
Expand All @@ -163,12 +163,12 @@ project/
* `.well-known/security.txt`
* `.well-known/ai.txt`
* `.well-known/humans.txt`
* `guix.scm` OR `flake.nix`
* `guix.scm` OR `flake.guix`

=== Prohibited

* Python outside `salt/` directory
* TypeScript/JavaScript (use ReScript)
* TypeScript/JavaScript (use AffineScript)
* CUE (use Guile/Nickel)
* `Dockerfile` (use `Containerfile`)

Expand Down
15 changes: 0 additions & 15 deletions deno.json

This file was deleted.

16 changes: 8 additions & 8 deletions examples/web-project-deno.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{
"// NOTE": "Example deno.json for ReScript web projects",
"// NOTE": "Example deno.json for AffineScript web projects",
"tasks": {
"build": "deno run -A npm:rescript",
"clean": "deno run -A npm:rescript clean",
"watch": "deno run -A npm:rescript -w",
"build": "deno run -A npm:affinescript",
"clean": "deno run -A npm:affinescript clean",
"watch": "deno run -A npm:affinescript -w",
"serve": "deno run -A jsr:@std/http/file-server .",
"test": "deno test --allow-all"
},
"imports": {
"rescript": "npm:rescript@^12.1.0",
"@rescript/core": "npm:@rescript/core@^1.6.0",
"safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/rescript-dom-mounter/main/src/",
"proven/": "../proven/bindings/rescript/src/"
"affinescript": "npm:affinescript@^12.1.0",
"@affinescript/core": "npm:@affinescript/core@^1.6.0",
"safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/affinescript-dom-mounter/main/src/",
"proven/": "../proven/bindings/affinescript/src/"
},
"compilerOptions": {
"allowJs": true,
Expand Down
Loading