A Chrome/Firefox browser extension that offers a full-featured scientific calculator. All computations are performed in-memory and results are encrypted using AES-GCM before being briefly displayed as an “ENCRYPTION” animation, then decrypted and shown to the user.
Chrome Webstore: https://chromewebstore.google.com/detail/encrypted-calculator/cmjikefegmcdkiicdcknjbbllnbdjpig
- Standard arithmetic:
+,-,*,/, decimal points - Scientific functions:
- Square root (
²√) - Nth root (
ⁿ√) - Square (
x²) and arbitrary power (xⁿ) - Logarithm (
log) and exponential (eˣ) - Factorial (
x!) - Trigonometric:
sin,cos,tan - Constant π
- Square root (
- Clear (
C) and backspace (⌫) controls - Keyboard support for numbers, operators, parentheses, Enter (evaluate), Backspace/Delete/C (clear)
- AES-GCM encryption/decryption of results using the Web Crypto API
- Cross-browser support via manifest v2 (Chrome & Firefox/Gecko)
- Clone or download this repository.
- Open
chrome://extensions/in your browser. - Enable Developer mode.
- Click Load unpacked and select the project directory containing
manifest.json.
- Clone or download this repository.
- Open
about:debugging#/runtime/this-firefox. - Click Load Temporary Add-on… and select
manifest.json.
- Click the calculator icon in your toolbar to open the popup.
- Enter or click buttons to build an expression.
- Press
=or Enter to evaluate.- The display will read
** ENCRYPTION **for a moment. - Then the decrypted result will appear.
- The display will read
- Use C to clear the entire expression or ⌫ to delete the last character.
/
├─ manifest.json # Extension metadata
├─ popup.html # Calculator UI
├─ styles/
│ └─ styles.css # Layout & styling
└─ scripts/
├─ math.js # math.js library for expression evaluation
├─ popup.js # UI logic & crypto routines
└─ background.js # (Reserved) background event handlers
- AES-GCM with 256-bit keys
- A new random IV (12 bytes) is generated per result
- Results are first encrypted, briefly replaced by an “** ENCRYPTION **” animation, then decrypted and displayed
- Keys are generated once per browser session and stored in memory
- Fork the repository.
- Create a feature branch (
git checkout -b feature/new-feature). - Commit your changes (
git commit -am 'Add new feature'). - Push to the branch (
git push origin feature/new-feature). - Open a pull request.
MIT License