RedoSan Authenticity provides three interfaces: a Node.js CLI, a Simplified Browser Mode (10-step wizard), and a Professional Browser Mode (per-algorithm control). All three share the same underlying algorithms.
node cli/menu.js
Launches a numbered interactive menu covering all tools (fingerprint, metadata, watermark, pixel injection, audio watermark, timestamp, C2PA, forensic, DID, certificate, converter, document watermark, ID forge, help). The menu is a wrapper that invokes cli/index.js — it is not a redosan subcommand.
All operations are available as direct CLI commands (redosan <command>):
# All default algorithms (17 cryptographic + 4 perceptual)
redosan fingerprint image.png
# Specific algorithm
redosan fingerprint image.png -a sha256
# JSON output
redosan fingerprint image.png -j
# Save to file
redosan fingerprint image.png -o output.json
Selectable algorithms for -a: sha1, sha256, sha384, sha512, sha3, blake2b, blake3, md5, ripemd160, whirlpool, all (default). The all output additionally includes SHA-224, SHA-512/224, SHA-512/256, BLAKE2s, SHAKE128/256, SHAKE256/512 and the four perceptual hashes (pHash, aHash, dHash, wHash).
# Read all metadata
redosan metadata image.jpg
# JSON output
redosan metadata image.jpg -j
# Save to file
redosan metadata image.jpg -o metadata.json
Extracts EXIF, XMP, IPTC, PNG chunk data, file statistics, and GPS coordinates.
# Embed watermark
redosan watermark embed -i image.png -s secret.txt -o output.png -a lsb -p password
# Extract watermark
redosan watermark extract -i output.png -o extracted.txt -a lsb -p password
9 core algorithms: LSB, DCT, Neural SS, Latent DCT, Zero-bit, Multi-bit, Forensic, Fragile, Imatag. Detection supports four perceptual hash modes.
# Embed watermark into WAV
redosan audio-watermark embed audio.wav -s secret.txt -o output.wav -a lsb -p password
# Extract watermark from WAV
redosan audio-watermark extract output.wav -o extracted.txt -a lsb -p password
# List available algorithms
redosan audio-watermark --help
8 algorithms: lsb, phase_coding, echo_hiding, dsss, qim, dwt, patchwork, dct.
# Embed using enhanced_lsb
redosan pixel-injection embed -i image.png -s secret.txt -o output.png -a enhanced_lsb
# Embed using dct
redosan pixel-injection embed -i image.png -s secret.txt -o output.png -a dct
# Extract
redosan pixel-injection extract -i output.png -o extracted.txt
# With password
redosan pixel-injection embed -i image.png -s secret.txt -o output.png -a enhanced_lsb -p password
23 algorithms across 4 categories: Spatial (enhanced_lsb, adaptive_lsb, multi_channel_lsb, random_lsb), Frequency (dct, dwt, dft, hybrid_dct_dwt), Deep Learning (vine, pixel_seal, nullguard, shallow_diffuse, diffusion_based), and Professional (imagewmark, meta_seal, stardustmark, invisimark, elevenlikes) — plus 5 detection/analysis modes (statistical detection, ML detection, blind decoding, robustness testing, quality metrics); auto-detect tries them all.
# Create timestamp
redosan timestamp create image.png -o proof.ots
# Verify timestamp
redosan timestamp verify image.png -f proof.ots
Uses the OpenTimestamps protocol with Bitcoin blockchain anchoring.
# Sign with C2PA manifest
redosan c2pa sign image.jpg -o signed.jpg --claim "Created by Me" --title "My Photo" --author "Jane Doe"
# Read C2PA manifest
redosan c2pa read image.jpg
# Verify C2PA
redosan c2pa verify image.jpg
Supports JPEG (APP11 marker) and PNG (c2pa chunk before IDAT).
# Analyze image for tampering
redosan forensic image.png
# JSON output
redosan forensic image.png -j
# Save to file
redosan forensic image.png -o forensic.json
Performs Error Level Analysis (ELA), noise inconsistency detection, JPEG structure analysis, copy-move detection, and metadata anomaly detection.
# Generate Ed25519 keypair
redosan did generate --algo Ed25519 -o identity.json
# Generate P-256 keypair
redosan did generate --algo P-256 -o identity.json
# Sign a file fingerprint
redosan did sign fingerprint.json -o signed.json
# Sign with custom key
redosan did sign fingerprint.json --key identity.json -o signed.json
Creates DID:key documents with Base58-encoded public keys.
# Generate PDF certificate
redosan certificate image.png -o passport.pdf
# Generate DOCX certificate
redosan certificate image.png -o passport.docx --format docx
# Generate EPUB certificate
redosan certificate image.png -o passport.epub --format epub
# With full metadata
redosan certificate image.png -o passport.pdf --name "Jane Doe" --email "jane@example.com" --fingerprint fingerprint.json --timestamp proof.ots
The certificate includes QR code, fingerprints, timestamps, watermark data, and user identity.
# Embed watermark in text file
redosan document-watermark embed -i document.txt -m "Hidden message" -o output.txt
# Embed with password and algorithm
redosan document-watermark embed -i document.txt -s secret.txt -o output.txt -a 1 -p password
# Extract watermark
redosan document-watermark extract -i output.txt -o extracted.txt -p password
Algorithms: 1=Zero-Width Character (ZWC), 2=Homoglyph, 3=Whitespace, 0=Auto (default: 1).
# Convert image format
redosan converter image.png -f webp -o image.webp
# Convert to JPEG
redosan converter image.png -f jpg -o image.jpg
# Convert audio format (via FFmpeg)
redosan converter audio.wav -f mp3 -o audio.mp3
Uses FFmpeg.wasm for audio/video conversion in the browser; Node.js CLI delegates to system FFmpeg.
# Upgrade an incomplete OpenTimestamps proof
redosan upgrade proof.ots -o upgraded.ots
This command contacts the OpenTimestamps calendar aggregator to complete a pending timestamp.
# Check availability of external tools
redosan tools
Checks for exiftool, sox, ImageMagick, FFmpeg, and other optional dependencies.
# Generate UUID v4
node cli/lib/id_forge.js uuidv4 5
# Generate NanoID
node cli/lib/id_forge.js nanoid 15 --json
# Generate SWHID from a file
node cli/lib/id_forge.js swhid document.txt
# All supported types: uuidv4, uuidv7, ulid, nanoid, swhid, all
node cli/lib/id_forge.js all 5
Usage: node cli/lib/id_forge.js <uuidv4|uuidv7|ulid|swhid|nanoid|all> [count|file] [--json|--csv]. In the browser, the same generators are available on the ID Forge page.
All CLI commands pass through a 6-layer file validation pipeline:
| Layer | Check | Bypass |
|---|---|---|
| 1. Extension | Blocks 60+ dangerous extensions (.exe, .sh, .py, .elf, etc.) | --allow-dangerous |
| 2. Magic Bytes | Validates PNG (89 50 4E 47) and JPEG (FF D8 FF) headers | --allow-dangerous |
| 3. Content Scan | Detects <script>, onerror=, javascript: in file content |
--allow-dangerous |
| 4. Document Threats | Scans PDF for embedded JS, OpenAction, oversized files (10MB limit) | --allow-dangerous |
| 5. File Structure | Checks PNG IEND and JPEG EOI markers | --allow-dangerous |
| 6. Pooled Buffer | Uses readFileBytes() that returns raw Buffer (prevents pooled-Buffer reuse attacks) |
Always enforced |
The simplified mode provides a guided 10-step pipeline:
maxlength/^[^\s@]+@[^\s@]+\.[^\s@]+$/, max 20 characters, red warning on invalidhttps://, regex /^https?:\/\/[^\s/$.?#].[^\s]*$/i, max 30 charactersThe professional mode provides per-algorithm control in separate sections. Access each tool via the sidebar or directly via its MPA page (23 standalone pages):
| Tool | MPA URL | Features |
|---|---|---|
| Image Watermark | /Style/pages/watermark/ |
9 algorithms, embed/extract, password, message |
| Audio Watermark | /Style/pages/audio-watermark/ |
8 algorithms, WAV files, embed/extract, capacity estimation |
| Document Watermark | /Style/pages/document-watermark/ |
5 techniques, DOCX/PDF/TXT, embed/extract |
| Fingerprinting | /Style/pages/fingerprint/ |
21 algorithms (17 crypto + 4 perceptual), download in 7 formats |
| Pixel Injection | /Style/pages/pixel-injection/ |
23 algorithms, robustness testing, quality metrics |
| C2PA | /Style/pages/c2pa/ |
Sign/read/verify, JPEG + PNG, social/music links |
| Metadata | /Style/pages/metadata/ |
EXIF/XMP/IPTC viewer, GPS coordinates |
| Timestamps | /Style/pages/timestamp/ |
Create/verify/upgrade OpenTimestamps proofs |
| Forensic | /Style/pages/forensic/ |
ELA, noise heatmap, difference detection, copy-move, download report |
| DID | /Style/pages/did/ |
Generate Ed25519/P-256/RSA keypairs, sign, verify |
| Certificate | /Style/pages/certificate/ |
PDF/DOCX/EPUB passport with QR code |
| Converter | /Style/pages/converter/ |
FFmpeg.wasm conversion between all formats |
| ID Forge | /Style/pages/id_forge/ |
UUIDv4/v7, ULID, NanoID, SWHID generators |
| Removal Tools | /Style/pages/removal-tools/ |
Strip watermarks, fingerprints, metadata, EXIF, thumbnails, GPS |
| Face Biometric | /Style/pages/face-biometric/ |
Face registration/verification, WebAuthn vault ([Face Biometric]) |
| Iris Biometric | /Style/pages/iris-biometric/ |
Iris capture, quality, liveness, template protection ([Iris Biometric]) |
| Voice Biometric | /Style/pages/voice-biometric/ |
Voice recorder, VAD, ECAPA/WavLM embeddings ([Voice Biometric]) |
| Assistant | Built into sidebar | Raido bilingual chatbot, 80+ intent patterns |
| Search | Sidebar | Site-wide search across all tools and documentation |
The browser interface supports 8 languages via a language toggle:
| Language | Code | Script |
|---|---|---|
| Arabic | ar |
RTL |
| German | de |
LTR |
| English | en |
LTR (default) |
| Spanish | es |
LTR |
| French | fr |
LTR |
| Japanese | ja |
LTR |
| Korean | ko |
LTR |
| Chinese | zh |
LTR |
All UI text, validation messages, and the Digital Passport PDF are localized. Scientific names in algorithm selectors remain in English regardless of language setting.
Translation data is in Style/lang/:
i18n-data.js — aggregation filei18n-data-{ar,de,en,es,fr,ja,ko,zh}.js — per-language dataThe i18n system uses __('key', 'English fallback') pattern. Text that includes HTML uses sanitizeHtml() with a tag whitelist to prevent XSS.
The Digital Passport is a certificate generated client-side. It is available in PDF, DOCX, and EPUB formats. It includes:
The certificate is downloaded automatically when the pipeline completes or can be generated independently from the Professional mode Certificate tool.
Each tool is available as a standalone page at Style/pages/{name}/index.html. The MPA router (mpa-router.js) enables seamless navigation between pages:
sessionStorage for instant revisitThe SPA entry point (index.html) remains fully functional with hash-based routing for users who prefer the single-page experience.
Wiki: API Reference
Wiki: Architecture
Wiki: Changelog
Wiki: FAQ
Wiki: Face Biometric
Wiki: Home
Wiki: Installation
Wiki: Iris Biometric
Wiki: Voice Biometric
Wiki: _Sidebar