Skip to content

jamesvnz/emergency-info-vault

Repository files navigation

Emergency Information Vault

A secure, client-side web application for encrypting and storing critical emergency information in a static HTML file. Access your emergency data from any device with just a passphrase - no servers, no accounts, no dependencies.

🚀 Quick Start

  1. Open src/creator/index.html in your web browser
  2. Add your emergency information (backup codes, contacts, documents)
  3. Set a strong passphrase
  4. Click "Create Vault" to generate your encrypted HTML file
  5. Save the generated file somewhere accessible (cloud storage, USB drive, etc.)
  6. Access your information anytime by opening the vault file and entering your passphrase

🔒 Security Features

  • Client-side encryption: All encryption happens in your browser - your data never leaves your device unencrypted
  • AES-256-GCM encryption: Military-grade encryption with authenticated encryption
  • Strong key derivation: PBKDF2 with 100,000 iterations and SHA-256
  • No external dependencies: Generated vaults work completely offline
  • Integrity verification: Built-in tamper detection
  • Secure memory handling: Automatic cleanup of sensitive data

📋 What You Can Store

  • MFA backup codes and recovery information
  • Emergency contact numbers and details
  • Account recovery information
  • Important passwords or PINs
  • Medical information and emergency procedures
  • Travel documents and details
  • Insurance documents and legal papers
  • ID photos and important screenshots

🛠️ Development

Prerequisites

  • Node.js (for running tests)
  • Modern web browser (Chrome, Firefox, Safari, Edge)

Setup

# Clone the repository
git clone <repository-url>
cd emergency-info-vault

# Install dependencies
npm install

# Run tests
npm test

# Start development server
npm run serve

Testing

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

Project Structure

src/
├── creator/           # Vault creation interface
│   ├── index.html    # Main creation interface
│   ├── app.js        # Application logic
│   ├── styles.css    # Styling
│   └── ...
├── lib/              # Core libraries
│   ├── encryption.js # Encryption utilities
│   ├── html-generator.js # Vault file generation
│   └── ...
└── templates/        # HTML templates
    └── vault-template.html

🌐 Browser Compatibility

  • Chrome 60+ (Recommended)
  • Firefox 57+ (Recommended)
  • Safari 11+
  • Edge 79+

Requires Web Crypto API, ES6+ JavaScript, and File API support.

🔧 Technical Details

Encryption Specifications

  • Algorithm: AES-256-GCM (Authenticated Encryption)
  • Key Derivation: PBKDF2 with SHA-256, 100,000 iterations
  • Salt: 256-bit cryptographically secure random salt
  • IV: 96-bit random initialization vector
  • Integrity: Built-in authentication with GCM mode

Security Best Practices

  1. Use a Strong Passphrase

    • At least 12 characters long
    • Include uppercase, lowercase, numbers, and symbols
    • Avoid dictionary words or personal information
  2. Secure Storage

    • Store vault files in multiple secure locations
    • Keep backups in different physical locations
    • Use descriptive but not obvious filenames
  3. Access Security

    • Only access vaults on trusted devices
    • Use private/incognito browsing mode
    • Always clear content when finished
    • Close browser tabs completely after use

⚠️ Important Warnings

  • No password recovery: If you forget your passphrase, your data is permanently inaccessible
  • Browser dependency: Requires a compatible modern browser
  • File integrity: Corrupted files cannot be recovered
  • Not a password manager: Use dedicated password managers for daily passwords

🆘 Troubleshooting

Common Issues

"Browser not supported" error

  • Update to a modern browser version
  • Enable JavaScript if disabled
  • Try Chrome or Firefox

"Incorrect passphrase" error

  • Double-check passphrase (case-sensitive)
  • Ensure caps lock is not enabled
  • Check for extra spaces

Large file upload issues

  • Reduce file sizes (10MB maximum)
  • Compress images/PDFs
  • Upload files individually

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🔐 Security Disclaimer

This software is provided for educational and personal use. Users are responsible for their own security practices. The authors make no guarantees about the security of encrypted data and recommend professional security consultation for highly sensitive applications.


Remember: Your security is only as strong as your weakest link. Use this tool as part of a comprehensive security strategy, not as a complete solution.

About

A secure, client-side web application for encrypting and storing critical emergency information in a static HTML file

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors