Open code. Ready to inspect.
IcyZip’s browser encryption code and runnable security tests are freely available here. Read, download and test them yourself — no account or phone number required.
Clone with Git — including history
git clone https://icyzip.com/open-source/icyzip-e2ee.git cd icyzip-e2ee npm test
The repository is publicly readable. You can inspect and test changes in your own clone. Browse all commits.
Download the complete Git repository (.bundle)
git clone icyzip-e2ee.bundle icyzip-e2ee
What is published here
The package contains the complete browser E2EE module, its integration and receive logic, small standalone tests, attack regressions, and protocol and verification documentation. The proprietary server software is outside this package. Relay messages and trust boundaries are documented in the protocol.
The encryption uses WebCrypto: P-256 ECDH, HKDF-SHA-256, HMAC-SHA-256 and AES-GCM. A test using independent Node cryptography APIs also checks the results.
Run the tests
Extract the archive and run these commands in the extracted directory. Node.js 20 or newer is sufficient; the tests need no package installation, server, account or network.
tar -xzf icyzip-e2ee.tar.gz cd icyzip-e2ee sha256sum -c SHA256SUMS npm run test:minimal npm test
On macOS, use shasum -a 256 -c SHA256SUMS in place of sha256sum. On Windows, extract the archive with an archive utility and run the npm commands in the extracted folder.
Start here: test/minimal.test.mjs · TESTING.md
Compare with the live website
npm run check:live
This optional network check compares the entire encryption module and the three published integration sections byte for byte with the browser files currently served by IcyZip. PROVENANCE.md explains the scope and provenance. PROVENANCE.md
Source and documentation
.gitignore29 bytes · Raw fileLICENSE11,358 bytes · Raw filePROTOCOL.md6,351 bytes · Raw filePROVENANCE.json1,439 bytes · Raw filePROVENANCE.md3,056 bytes · Raw fileREADME.md5,037 bytes · Raw fileSECURITY.md2,097 bytes · Raw fileTESTING.md2,475 bytes · Raw fileTHREAT-MODEL.md4,407 bytes · Raw filepackage.json671 bytes · Raw filesrc/e2ee.js14,319 bytes · Raw filesrc/snapshot.js23,738 bytes · Raw filetest/crypto.test.mjs14,259 bytes · Raw filetest/endpoint.mjs1,295 bytes · Raw filetest/file-receive.test.mjs14,293 bytes · Raw filetest/minimal.test.mjs1,099 bytes · Raw filetest/provenance.test.mjs5,246 bytes · Raw filetest/security-regressions.test.mjs2,057 bytes · Raw filetools/snapshot.mjs8,559 bytes · Raw file
Verify downloads
SHA-256 checksums identify the offered bytes. The archive also includes SHA256SUMS for all 19 files. The source ID is the SHA-256 of that checksum list; identical source IDs identify the same list.
Reviews and findings welcome
Inspect the code with your own synthetic test data and add reproducible cases. Please report suspected security weaknesses privately; general feedback can be sent without a name or email address.