Proof of concept demonstrating RSA-4096 asymmetric and AES-256 symmetric end-to-end encryption entirely in the browser using node-forge & CryptoJS.
⚠️ Proof of Concept — Not for production use
The client encrypts a "secret" field using the server's RSA-4096 public key
before submitting the form. The encrypted value is stored as
%*ENCRYPTED*%(base64…).
Only the server's private key (password-protected) can decrypt it.
Simulates PGP-style encryption. Party A retrieves a pre-shared AES-256 key (delivered encrypted with their RSA public key), decrypts it with their private key, encrypts the secret field, then re-seals the AES key under Party B's RSA public key. Party B decrypts using their private key.
setup_keys.sh%*ENCRYPTED*%(base64_ciphertext)