A comprehensive, 100% client-side digital authenticity suite — watermark images, audio, and documents; fingerprint files with 21 hash algorithms; inject pixel data with 23 advanced algorithms; sign media with C2PA Content Credentials; create OpenTimestamps proofs; generate Decentralized Identity (DID) keypairs; produce Digital Passport certificates; analyze forensic tamper signals; convert between file formats; register and verify face, iris, and voice biometrics; strip metadata with the removal tools; and generate unique identifiers — all without uploading a single byte to any server.
RedoSan Authenticity is an all-in-one authenticity verification suite designed for journalists, artists, photographers, musicians, forensic analysts, content creators, and developers who need to prove the provenance and integrity of digital media. Unlike SaaS solutions that require uploading your files to third-party servers, every algorithm runs locally in your browser or via the Node.js CLI. The entire processing pipeline — from fingerprint extraction to C2PA signing — happens on your machine with zero network calls (except OpenTimestamps, which contacts timestamp servers, and first-run model/CDN loads for biometrics).
The project evolved from a Python proof-of-concept into a production-grade JavaScript application with a dual-interface design: a Simplified Mode (10-step wizard) for one-click pipeline execution and a Professional Mode with per-algorithm control. The browser uses an MPA (Multi-Page Application) architecture where each tool has its own standalone page at Style/pages/{name}/index.html, allowing direct linking and deep navigation while the AJAX router keeps audio playback and sidebar state intact.
The suite includes 20+ tools, 6,200+ passing tests across 107 unit test files + 59 E2E suites, 77 CI/CD workflows, and support for 8 languages. The repository maintains zero open alerts across CodeQL, Dependabot, and Secret Scanning.
good first issue tasks; listed on up-for-grabs.net, CodeTriage, and goodfirstissue.orgSee [Changelog] for the full release history.
| Feature | Browser | CLI | Description |
|---|---|---|---|
| Fingerprinting | ✓ | ✓ | 21 hash algorithms (17 cryptographic + 4 perceptual: pHash, aHash, dHash, wHash) |
| Image Watermarking | ✓ | ✓ | 9 core algorithms (LSB, DCT, Neural SS, Latent DCT, Zero-bit, Multi-bit, Forensic, Fragile, Imatag) + 4 perceptual detection modes |
| Audio Watermarking | ✓ | ✓ | 8 algorithms for WAV files (LSB, Phase Coding, Echo Hiding, DSSS, QIM, DWT, Patchwork, DCT) |
| Document Watermarking | ✓ | ✓ | 5 text techniques for TXT/DOCX/PDF (Whitespace, ZWC, Synonym, Line-Shift, Word-Shift) |
| Pixel Injection | ✓ | ✓ | 23 algorithms in 4 categories (Spatial 4, Frequency 4, Deep Learning, Professional) |
| C2PA Provenance | ✓ | ✓ | Read/write/verify C2PA manifests, ECDSA signing, JPEG APP11 + PNG c2pa chunk |
| OpenTimestamps | ✓ | ✓ | Create/verify/upgrade .ots proofs anchored to Bitcoin blockchain |
| Metadata Analysis | ✓ | ✓ | EXIF, XMP, IPTC, PNG chunk parsing, GPS coordinates |
| Forensic Analysis | ✓ | ✓ | Error Level Analysis (ELA), noise heatmaps, JPEG structure analysis, copy-move detection |
| Decentralized ID (DID) | ✓ | ✓ | DID:key generation (Ed25519, P-256, RSA), Base58 encoding, signing & verification |
| Digital Passport | ✓ | ✓ | PDF/DOCX/EPUB certificate with QR code, fingerprint/watermark/C2PA evidence, user info |
| File Converter | ✓ | ✓ | FFmpeg.wasm-based conversion between image/audio/video formats |
| Face Biometric | ✓ | — | Register & verify face descriptors with WebAuthn PRF vault, anti-spoof + liveness, ArcFace ONNX ([Face Biometric]) |
| Iris Biometric | ✓ | — | In-browser iris capture with quality assessment, liveness/anti-spoof, encrypted templates ([Iris Biometric]) |
| Voice Biometric | ✓ | — | 3-minute recorder with VAD, ECAPA/WavLM embeddings, anti-spoof, C2PA audio provenance ([Voice Biometric]) |
| Removal Tools | ✓ | — | Strip watermarks, fingerprints, metadata, EXIF, thumbnails, and GPS from images/audio |
| ID Forge | ✓ | ✓ | UUID v4/v7, ULID, NanoID, SWHID generators with bulk mode |
| AI Pipeline | ✓ | — | 10-step wizard: Upload → AI Question → User Info → Fingerprint → Timestamp → Watermark → Pixel Injection → C2PA → Certificate → Done |
| Assistant Chatbot | ✓ | — | Raido bilingual (AR/EN) chatbot with 80+ intent patterns |
The simplified mode provides a guided 10-step wizard that automates the entire authenticity workflow:
toBlob() strips C2PA chunks)vm.runInContext() with browser API polyfills (canvas, crypto.subtle, ImageData), avoiding code duplication.index.html, hash routing) + MPA with 23 standalone pages at Style/pages/{name}/index.html. The MPA router (mpa-router.js) enables seamless AJAX navigation and hides stale results on page swap.integrity + crossorigin attributes.toBlob()/toDataURL() strip C2PA chunks, so C2PA signing must be the final pixel-level operation.window.location matches redo-san.github.io, localhost, or 127.0.0.1. On untrusted domains, the code silently refuses to execute.redosan-authenticity-cli) is prepared for npm with a staged-publish workflow (OIDC staging + human 2FA approval) — dual-use policy compliance requires staging, not direct publish.RedoSan-Authenticity/
├── cli/ # Node.js CLI (Commander.js, 14 commands)
│ ├── index.js # Entry point (fingerprint, watermark, metadata,
│ │ # timestamp, c2pa, pixel-injection, audio-watermark,
│ │ # forensic, did, certificate, document-watermark,
│ │ # converter, upgrade, tools)
│ ├── menu.js # Interactive numbered menu
│ ├── utils.js # Polyfills, file I/O, text extraction, PDF/DOCX helpers
│ ├── commands/ # CLI command handlers (12 modules)
│ ├── lib/id_forge.js # ID generation (uuidv4/v7, ulid, nanoid, swhid)
│ └── tests/ # 107 unit test files + 59 E2E suites (6,200+ tests)
├── Watermark/ # 9 image watermark algorithms + perceptual detection
├── Audio_Watermark/ # 8 audio watermark algorithms (WAV)
├── Pixel_Injection/ # 23 pixel algorithms (4 categories)
├── Document_Watermark/ # 5 text/PDF/DOCX watermark techniques
├── Fingerprint/ # 17 cryptographic + 4 perceptual hashes
├── C2PA/ # C2PA provenance + CBOR
├── Certificate/ # Digital Passport (PDF, DOCX, EPUB, OTS, utils)
├── Face_Biometric/ # Face detection, WebAuthn vault, registration, matching
├── Iris_Biometric/ # Iris capture, quality, liveness, template protection (11 files)
├── Voice_Biometric/ # Voice VAD, ECAPA/WavLM embeddings, anti-spoof (19 files)
├── Decentralized_Identity_DID/ # DID:key, Ed25519/P-256/RSA
├── Timestamp/ # OpenTimestamps create/verify/upgrade
├── Metadata/ # EXIF reader
├── Forensic/ # ELA, noise, JPEG markers, copy-move
├── ID_Forge/ # UUID v4/v7, ULID, NanoID, SWHID
├── Converter/ # FFmpeg.wasm image/audio/video/doc/subtitle
├── Removal_Tools/ # Metadata/watermark/fingerprint stripping
├── Assistant/ # Raido chatbot (80+ intents, AR+EN)
├── Style/ # Browser frontend
│ ├── shared.js / shared_validation.js / navigation.js / mpa-router.js
│ ├── i18n.js / search.js / music-player.js / simplified*.js
│ ├── style.css / responsive.css / rtl.css
│ ├── lang/ # i18n-data.js + 8 language files
│ └── pages/ # 23 standalone MPA pages
│ └── {name}/index.html # One per tool + home/about/contact/privacy/search/social
├── vendor/ # pdf-lib, jspdf, jszip, qrious, opentimestamps
├── .github/workflows/ # 77 CI/CD workflows
├── sw.js # Service Worker (threat blocking, whitelists)
├── 404.html # Threat-detection themed 404
└── index.html # SPA entry point (hash routing, 20+ sections)
Wiki: API Reference
Wiki: Architecture
Wiki: Changelog
Wiki: FAQ
Wiki: Face Biometric
Wiki: Installation
Wiki: Iris Biometric
Wiki: Security
Wiki: Usage Guide
Wiki: Voice Biometric
Wiki: _Sidebar